@c @c COPYRIGHT (c) 1988-1998. @c On-Line Applications Research Corporation (OAR). @c All rights reserved. @c @c $Id$ @c @chapter Device- and Class- Specific Functions Manager @section Introduction The device- and class- specific functions manager is ... The directives provided by the device- and class- specific functions manager are: @itemize @bullet @item @code{cfgetispeed} - Reads terminal input baud rate @item @code{cfgetospeed} - Reads terminal output baud rate @item @code{cfsetispeed} - Sets terminal input baud rate @item @code{cfsetospeed} - Set terminal output baud rate @item @code{tcgetattr} - Gets terminal attributes @item @code{tcsetattr} - Set terminal attributes @item @code{tcsendbreak} - Sends a break to a terminal @item @code{tcdrain} - Waits for all output to be transmitted to the terminal @item @code{tcflush} - Discards terminal data @item @code{tcflow} - Suspends/restarts terminal output @item @code{tcgetpgrp} - Gets foreground process group ID @item @code{tcsetpgrp} - Sets foreground process group ID @end itemize @section Background There is currently no text in this section. @section Operations There is currently no text in this section. @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. @page @subsection cfgetispeed - Reads terminal input baud rate @subheading CALLING SEQUENCE: @ifset is-C @example #include int cfgetispeed( const struct termios *p ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: The @code{cfgetispeed()} function returns a code for baud rate. @subheading DESCRIPTION: The @code{cfsetispeed()} function stores a code for the terminal speed stored in a struct termios. The codes are defined in @code{} by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, and B38400. The @code{cfsetispeed()} function does not do anything to the hardware. It merely stores a value for use by @code{tcsetattr()}. @subheading 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. @page @subsection cfgetospeed - Reads terminal output baud rate @subheading CALLING SEQUENCE: @ifset is-C @example #include int cfgetospeed( const struct termios *p ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: The @code{cfgetospeed()} function returns the termios code for the baud rate. @subheading DESCRIPTION: The @code{cfgetospeed()} function returns a code for the terminal speed stored in a @code{struct termios}. The codes are defined in @code{} by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, and B38400. The @code{cfgetospeed()} function does not do anything to the hardware. It merely returns the value stored by a previous call to @code{tcgetattr()}. @subheading NOTES: Baud reates are defined by symbols, such as B110, B1200, B2400. The actual number returned for any given speed may change from system to system. @page @subsection cfsetispeed - Sets terminal input baud rate @subheading CALLING SEQUENCE: @ifset is-C @example #include int cfsetispeed( struct termios *p, speed_t speed ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: The @code{cfsetispeed()} function returns a zero when successful and returns -1 when an error occurs. @subheading DESCRIPTION: The @code{cfsetispeed()} function stores a code for the terminal speed stored in a struct termios. The codes are defined in @code{} by the macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, and B38400. @subheading NOTES: This function merely stores a value in the @code{termios} structure. It does not change the terminal speed until a @code{tcsetattr()} is done. It does not detect impossible terminal speeds. @page @subsection cfsetospeed - Sets terminal output baud rate @subheading CALLING SEQUENCE: @ifset is-C @example #include int cfsetospeed( struct termios *p, speed_t speed ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: The @code{cfsetospeed()} function returns a zero when successful and returns -1 when an error occurs. @subheading DESCRIPTION: The @code{cfsetospeed()} function stores a code for the terminal speed stored in a struct @code{termios}. The codes are defiined in @code{} by the macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, and B38400. The @code{cfsetospeed()} function does not do anything to the hardware. It merely stores a value for use by @code{tcsetattr()}. @subheading NOTES: This function merely stores a value in the @code{termios} structure. It does not change the terminal speed until a @code{tcsetattr()} is done. It does not detect impossible terminal speeds. @page @subsection tcgetattr - Gets terminal attributes @subheading CALLING SEQUENCE: @ifset is-C @example #include #include int tcgetattr( int fildes, struct termios *p ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item EBADF Invalid file descriptor @item ENOOTY Terminal control function attempted for a file that is not a terminal. @end table @subheading DESCRIPTION: The @code{tcgetattr()} gets the parameters associated with the terminal referred to by @code{fildes} and stores them into the @code{termios()} structure pointed to by @code{termios_p}. @subheading NOTES: NONE @page @subsection tcsetattr - Set terminal attributes @subheading CALLING SEQUENCE: @ifset is-C @example #include #include int tcsetattr( int fildes, int options, const struct termios *tp ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: @page @subsection tcsendbreak - Sends a break to a terminal @subheading CALLING SEQUENCE: @ifset is-C @example int tcsendbreak( ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: This routine is not currently supported by RTEMS but could be in a future version. @page @subsection tcdrain - Waits for all output to be transmitted to the terminal. @subheading CALLING SEQUENCE: @ifset is-C @example #include #include int tcdrain( int fildes ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item EBADF Invalid file descriptor @item EINTR Function was interrupted by a signal @item ENOTTY Terminal control function attempted for a file that is not a terminal. @end table @subheading DESCRIPTION: The @code{tcdrain()} function waits until all output written to @code{fildes} has been transmitted. @subheading NOTES: NONE @page @subsection tcflush - Discards terminal data @subheading CALLING SEQUENCE: @ifset is-C @example int tcflush( ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: This routine is not currently supported by RTEMS but could be in a future version. @page @subsection tcflow - Suspends/restarts terminal output. @subheading CALLING SEQUENCE: @ifset is-C @example int tcflow( ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: This routine is not currently supported by RTEMS but could be in a future version. @page @subsection tcgetpgrp - Gets foreground process group ID @subheading CALLING SEQUENCE: @ifset is-C @example int tcgetpgrp( ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: This routine is not currently supported by RTEMS but could be in a future version. @page @subsection tcsetpgrp - Sets foreground process group ID @subheading CALLING SEQUENCE: @ifset is-C @example int tcsetpgrp( ); @end example @end ifset @ifset is-Ada @end ifset @subheading STATUS CODES: @table @b @item E The @end table @subheading DESCRIPTION: @subheading NOTES: This routine is not currently supported by RTEMS but could be in a future version.