summaryrefslogblamecommitdiffstats
path: root/doc/new_chapters/device.t
blob: 05ef101fec7b1237efdd9f4707fa8d6c970d5ad2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                      
                                                        
 

                                                                    

                











                                                                             



                   

                                           

                   

                                           

                   

                                                                           



                                                             
                                                        




                             

                    
                
                         








                         
                                                                 
 

                        







                                                                         

                  


                                                                          
     
                                                         




                             



                         








                         
                                                                             
 

                        







                                                                               

                  
                                                                          

                                                                     
     
                                                       




                             

                    
                

                       








                         

                                                                     
 

                        




                                                                        

                  



                                                                        
     
                                                         




                             

                    
                

                       








                         

                                                                     
 
 

                        







                                                                                

                  



                                                                         
     
                                                




                             


                    
              

                   








                         
         

                       
 

                                                                      

          

                        



                                                                       

                  

    
     
                                               




                             


                    
              


                                








                         





          




                        
                                                      














                             





          



                        


                                                              
     
                                                                             




                             


                    
            
            








                         
         







                                                                      


          

                        


                                                                

                  

    
     
                                             














                             





          



                        


                                                              
     
                                                       














                             





          



                        


                                                              
     
                                                        














                             





          



                        


                                                              
     
                                                        














                             





          



                        



                                                              
@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 <termios.h>

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{<termios.h>} 
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 <termios.h>

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{<termios.h>}
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 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 cfsetispeed - Sets terminal input baud rate

@subheading CALLING SEQUENCE:

@ifset is-C
@example
#include <termios.h>

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{<termios.h>}
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 <termios.h>

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{<termios.h>} 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 <termios.h>
#include <unistd.h>

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 <termios.h>
#include <unistd.h>

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 <termios.h>
#include <unistd.h>

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.