summaryrefslogblamecommitdiffstats
path: root/posix_users/device_and_class_specific.rst
blob: 0c344d251a0eaf43798619f803fe5b133050621b (plain) (tree)















































                                                                      

                                                                          








































































































































































































































































































































































                                                                                            
Device- and Class- Specific Functions Manager
#############################################

Introduction
============

The device- and class- specific functions manager is ...

The directives provided by the device- and class- specific functions
manager are:

- ``cfgetispeed`` - Reads terminal input baud rate

- ``cfgetospeed`` - Reads terminal output baud rate

- ``cfsetispeed`` - Sets terminal input baud rate

- ``cfsetospeed`` - Set terminal output baud rate

- ``tcgetattr`` - Gets terminal attributes

- ``tcsetattr`` - Set terminal attributes

- ``tcsendbreak`` - Sends a break to a terminal

- ``tcdrain`` - Waits for all output to be transmitted to the terminal

- ``tcflush`` - Discards terminal data

- ``tcflow`` - Suspends/restarts terminal output

- ``tcgetpgrp`` - Gets foreground process group ID

- ``tcsetpgrp`` - Sets foreground process group ID

Background
==========

There is currently no text in this section.

Operations
==========

There is currently no text in this section.

Directives
==========

This section details the device- and class- specific functions manager's
directives. A subsection is dedicated to each of this manager's directives
and describes the calling sequence, related constants, usage,
and status codes.

cfgetispeed - Reads terminal input baud rate
--------------------------------------------
.. index:: cfgetispeed
.. index:: reads terminal input baud rate

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    int cfgetispeed(
    const struct termios \*p
    );

**STATUS CODES:**

The ``cfgetispeed()`` function returns a code for baud rate.

**DESCRIPTION:**

The ``cfsetispeed()`` function stores a code for the terminal speed
stored in a struct termios. The codes are defined in ``<termios.h>``
by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200,
B1800, B2400, B4800, B9600, B19200, and B38400.

The ``cfsetispeed()`` function does not do anything to the hardware.
It merely stores a value for use by ``tcsetattr()``.

**NOTES:**

Baud rates are defined by symbols, such as B110, B1200, B2400. The actual
number returned for any given speed may change from system to system.

cfgetospeed - Reads terminal output baud rate
---------------------------------------------
.. index:: cfgetospeed
.. index:: reads terminal output baud rate

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    int cfgetospeed(
    const struct termios \*p
    );

**STATUS CODES:**

The ``cfgetospeed()`` function returns the termios code for the baud rate.

**DESCRIPTION:**

The ``cfgetospeed()`` function returns a code for the terminal speed
stored in a ``struct termios``. The codes are defined in ``<termios.h>``
by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800,
B2400, B4800, B9600, B19200, and B38400.

The ``cfgetospeed()`` function does not do anything to the hardware.
It merely returns the value stored by a previous call to ``tcgetattr()``.

**NOTES:**

Baud rates are defined by symbols, such as B110, B1200, B2400. The actual
number returned for any given speed may change from system to system.

cfsetispeed - Sets terminal input baud rate
-------------------------------------------
.. index:: cfsetispeed
.. index:: sets terminal input baud rate

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    int cfsetispeed(
    struct termios \*p,
    speed_t         speed
    );

**STATUS CODES:**

The ``cfsetispeed()`` function returns a zero when successful and
returns -1 when an error occurs.

**DESCRIPTION:**

The ``cfsetispeed()`` function stores a code for the terminal speed
stored in a struct termios. The codes are defined in ``<termios.h>``
by the macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200,
B1800, B2400, B4800, B9600, B19200, and B38400.

**NOTES:**

This function merely stores a value in the ``termios`` structure. It
does not change the terminal speed until a ``tcsetattr()`` is done.
It does not detect impossible terminal speeds.

cfsetospeed - Sets terminal output baud rate
--------------------------------------------
.. index:: cfsetospeed
.. index:: sets terminal output baud rate

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    int cfsetospeed(
    struct termios \*p,
    speed_t         speed
    );

**STATUS CODES:**

The ``cfsetospeed()`` function returns a zero when successful and
returns -1 when an error occurs.

**DESCRIPTION:**

The ``cfsetospeed()`` function stores a code for the terminal speed stored
in a struct ``termios``. The codes are defiined in ``<termios.h>`` by the
macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400,
B4800, B9600, B19200, and B38400.

The ``cfsetospeed()`` function does not do anything to the hardware. It
merely stores a value for use by ``tcsetattr()``.

**NOTES:**

This function merely stores a value in the ``termios`` structure.
It does not change the terminal speed until a ``tcsetattr()`` is done.
It does not detect impossible terminal speeds.

tcgetattr - Gets terminal attributes
------------------------------------
.. index:: tcgetattr
.. index:: gets terminal attributes

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    #include <unistd.h>
    int tcgetattr(
    int             fildes,
    struct termios \*p
    );

**STATUS CODES:**

*EBADF*
    Invalid file descriptor

*ENOOTY*
    Terminal control function attempted for a file that is not a terminal.

**DESCRIPTION:**

The ``tcgetattr()`` gets the parameters associated with the terminal
referred to by ``fildes`` and stores them into the ``termios()``
structure pointed to by ``termios_p``.

**NOTES:**

NONE

tcsetattr - Set terminal attributes
-----------------------------------
.. index:: tcsetattr
.. index:: set terminal attributes

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    #include <unistd.h>
    int tcsetattr(
    int                   fildes,
    int                   options,
    const struct termios \*tp
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

tcsendbreak - Sends a break to a terminal
-----------------------------------------
.. index:: tcsendbreak
.. index:: sends a break to a terminal

**CALLING SEQUENCE:**

.. code:: c

    int tcsendbreak(
    int fd
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

This routine is not currently supported by RTEMS but could be
in a future version.

tcdrain - Waits for all output to be transmitted to the terminal.
-----------------------------------------------------------------
.. index:: tcdrain
.. index:: waits for all output to be transmitted to the terminal.

**CALLING SEQUENCE:**

.. code:: c

    #include <termios.h>
    #include <unistd.h>
    int tcdrain(
    int fildes
    );

**STATUS CODES:**

*EBADF*
    Invalid file descriptor

*EINTR*
    Function was interrupted by a signal

*ENOTTY*
    Terminal control function attempted for a file that is not a terminal.

**DESCRIPTION:**

The ``tcdrain()`` function waits until all output written to``fildes`` has been transmitted.

**NOTES:**

NONE

tcflush - Discards terminal data
--------------------------------
.. index:: tcflush
.. index:: discards terminal data

**CALLING SEQUENCE:**

.. code:: c

    int tcflush(
    int fd
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

This routine is not currently supported by RTEMS but could be
in a future version.

tcflow - Suspends/restarts terminal output.
-------------------------------------------
.. index:: tcflow
.. index:: suspends/restarts terminal output.

**CALLING SEQUENCE:**

.. code:: c

    int tcflow(
    int fd
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

This routine is not currently supported by RTEMS but could be
in a future version.

tcgetpgrp - Gets foreground process group ID
--------------------------------------------
.. index:: tcgetpgrp
.. index:: gets foreground process group id

**CALLING SEQUENCE:**

.. code:: c

    int tcgetpgrp(
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

This routine is not currently supported by RTEMS but could be
in a future version.

tcsetpgrp - Sets foreground process group ID
--------------------------------------------
.. index:: tcsetpgrp
.. index:: sets foreground process group id

**CALLING SEQUENCE:**

.. code:: c

    int tcsetpgrp(
    );

**STATUS CODES:**

*E*
    The

**DESCRIPTION:**

**NOTES:**

This routine is not currently supported by RTEMS but could be
in a future version.

.. COMMENT: COPYRIGHT (c) 1988-2002.

.. COMMENT: On-Line Applications Research Corporation (OAR).

.. COMMENT: All rights reserved.