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 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 ```` 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 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 ```` 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 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 ```` 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 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 ```` 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 #include 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 #include 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 #include 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.