mirror of
https://git.rtems.org/rtems-docs/
synced 2025-05-19 09:47:48 +08:00
412 lines
8.5 KiB
ReStructuredText
412 lines
8.5 KiB
ReStructuredText
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.
|
|
|