From 02788519a9ef42b4b4966f8795d7b158ad97324e Mon Sep 17 00:00:00 2001 From: jtc Date: Tue, 25 Apr 1995 00:06:17 +0000 Subject: [PATCH] termios code has been moved to new libc/termios directory. --- lib/libc/gen/Makefile.inc | 14 +- lib/libc/gen/tcgetpgrp.3 | 81 --------- lib/libc/gen/tcsendbreak.3 | 156 ----------------- lib/libc/gen/tcsetattr.3 | 333 ------------------------------------- lib/libc/gen/tcsetpgrp.3 | 102 ------------ lib/libc/gen/termios.c | 250 ---------------------------- 6 files changed, 4 insertions(+), 932 deletions(-) delete mode 100644 lib/libc/gen/tcgetpgrp.3 delete mode 100644 lib/libc/gen/tcsendbreak.3 delete mode 100644 lib/libc/gen/tcsetattr.3 delete mode 100644 lib/libc/gen/tcsetpgrp.3 delete mode 100644 lib/libc/gen/termios.c diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc index 49ee40facf68..d980d3e07463 100644 --- a/lib/libc/gen/Makefile.inc +++ b/lib/libc/gen/Makefile.inc @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.69 1995/04/17 12:28:29 ragge Exp $ +# $NetBSD: Makefile.inc,v 1.70 1995/04/25 00:06:17 jtc Exp $ # @(#)Makefile.inc 8.3 (Berkeley) 4/16/94 # gen sources @@ -14,7 +14,7 @@ SRCS+= alarm.c assert.c clock.c closedir.c confstr.c ctermid.c \ popen.c psignal.c pwcache.c raise.c readdir.c rewinddir.c scandir.c \ seekdir.c setdomainname.c sethostname.c setjmperr.c setmode.c \ setproctitle.c siginterrupt.c siglist.c signal.c signame.c \ - sigsetops.c sleep.c sysconf.c sysctl.c syslog.c telldir.c termios.c \ + sigsetops.c sleep.c sysconf.c sysctl.c syslog.c telldir.c \ time.c times.c timezone.c tolower_.c ttyname.c ttyslot.c toupper_.c \ ualarm.c uname.c unvis.c usleep.c utime.c valloc.c vis.c wait.c \ wait3.c waitpid.c @@ -52,8 +52,8 @@ MAN+= alarm.3 clock.3 confstr.3 ctermid.3 ctype.3 daemon.3 \ islower.3 isprint.3 ispunct.3 isspace.3 isupper.3 isxdigit.3 \ ldexp.3 modf.3 nice.3 nlist.3 pause.3 popen.3 psignal.3 pwcache.3 \ raise.3 scandir.3 setjmp.3 setmode.3 setproctitle.3 siginterrupt.3 \ - signal.3 sigsetops.3 sleep.3 sysconf.3 sysctl.3 syslog.3 tcgetpgrp.3 \ - tcsendbreak.3 tcsetattr.3 tcsetpgrp.3 time.3 times.3 timezone.3 \ + signal.3 sigsetops.3 sleep.3 sysconf.3 sysctl.3 syslog.3 \ + time.3 times.3 timezone.3 \ tolower.3 toupper.3 ttyname.3 ualarm.3 uname.3 unvis.3 \ usleep.3 utime.3 valloc.3 vis.3 @@ -97,11 +97,5 @@ MLINKS+=sigsetops.3 sigemptyset.3 sigsetops.3 sigfillset.3 \ sigsetops.3 sigismember.3 MLINKS+=syslog.3 closelog.3 syslog.3 openlog.3 syslog.3 setlogmask.3 \ syslog.3 vsyslog.3 -MLINKS+=tcsendbreak.3 tcdrain.3 tcsendbreak.3 tcflow.3 \ - tcsendbreak.3 tcflush.3 -MLINKS+=tcsetattr.3 tcgetattr.3 tcsetattr.3 cfgetispeed.3 \ - tcsetattr.3 cfgetospeed.3 tcsetattr.3 cfmakeraw.3 \ - tcsetattr.3 cfsetispeed.3 tcsetattr.3 cfsetospeed.3 \ - tcsetattr.3 cfsetspeed.3 MLINKS+=ttyname.3 isatty.3 ttyname.3 ttyslot.3 MLINKS+=vis.3 strvis.3 vis.3 strvisx.3 unvis.3 strunvis.3 diff --git a/lib/libc/gen/tcgetpgrp.3 b/lib/libc/gen/tcgetpgrp.3 deleted file mode 100644 index 8117d46a2c31..000000000000 --- a/lib/libc/gen/tcgetpgrp.3 +++ /dev/null @@ -1,81 +0,0 @@ -.\" $NetBSD: tcgetpgrp.3,v 1.3 1995/02/27 05:53:08 cgd Exp $ -.\" -.\" Copyright (c) 1991 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)tcgetpgrp.3 5.3 (Berkeley) 3/29/92 -.\" -.Dd "March 29, 1992" -.Dt TCGETPGRP 3 -.Os -.Sh NAME -.Nm tcgetpgrp -.Nd get foreground process group ID -.Sh SYNOPSIS -.Fd #include -.Fd #include -.Ft pid_t -.Fn tcgetpgrp "int fd" -.Sh DESCRIPTION -The -.Nm tcgetpgrp -function returns the value of the process group ID of the foreground -process group associated with the terminal device. -If there is no foreground process group, -.Nm tcgetpgrp -returns an invalid process ID. -.Sh ERRORS -If an error occurs, -.Nm tcgetpgrp -returns -1 and the global variable -.Va errno -is set to indicate the error, as follows: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa fd -argument is not a valid file descriptor. -.It Bq Er ENOTTY -The calling process does not have a controlling terminal or the -underlying terminal device represented by -.Fa fd -is not the controlling terminal. -.El -.Sh SEE ALSO -.Xr setpgid 3 , -.Xr setsid 2 , -.Xr tcsetpgrp 3 -.Sh STANDARDS -The -.Nm tcgetpgrp -function is expected to be compliant with the -.St -p1003.1-88 -specification. diff --git a/lib/libc/gen/tcsendbreak.3 b/lib/libc/gen/tcsendbreak.3 deleted file mode 100644 index e96f7593cfe0..000000000000 --- a/lib/libc/gen/tcsendbreak.3 +++ /dev/null @@ -1,156 +0,0 @@ -.\" $NetBSD: tcsendbreak.3,v 1.3 1995/02/27 05:53:16 cgd Exp $ -.\" -.\" Copyright (c) 1991 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)tcsendbreak.3 5.3 (Berkeley) 3/4/92 -.\" -.Dd "March 4, 1992" -.Dt TCSENDBREAK 3 -.Os -.Sh NAME -.Nm tcsendbreak , -.Nm tcdrain , -.Nm tcflush , -.Nm tcflow -.Nd line control functions -.Sh SYNOPSIS -.Fd #include -.Ft int -.Fn tcdrain "int fd" -.Ft int -.Fn tcflow "int fd" "int action" -.Ft int -.Fn tcflush "int fd" "int action" -.Ft int -.Fn tcsendbreak "int fd" "int len" -.Sh DESCRIPTION -The -.Nm tcdrain -function waits until all output written to the terminal referenced by -.Fa fd -has been transmitted to the terminal. -.Pp -The -.Nm tcflow -function suspends transmission of data to or the reception of data from -the terminal referenced by -.Fa fd -depending on the value of -.Fa action . -The value of -.Fa action -must be one of the following: -.Bl -tag -width "TCIOFF" -.It Fa TCOOFF -Suspend output. -.It Fa TCOON -Restart suspended output. -.It Fa TCIOFF -Transmit a STOP character, which is intended to cause the terminal to stop -transmitting data to the system. -(See the description of IXOFF in the -.Ql Input Modes -section of -.Xr termios 4 ). -.It Fa TCION -Transmit a START character, which is intended to cause the terminal to start -transmitting data to the system. -(See the description of IXOFF in the -.Ql Input Modes -section of -.Xr termios 4 ). -.El -.Pp -The -.Nm tcflush -function discards any data written to the terminal referenced by -.Fa fd -which has not been transmitted to the terminal, or any data received -from the terminal but not yet read, depending on the value of -.Fa action . -The value of -.Fa action -must be one of the following: -.Bl -tag -width "TCIOFLUSH" -.It Fa TCIFLUSH -Flush data received but not read. -.It Fa TCOFLUSH -Flush data written but not transmitted. -.It Fa TCIOFLUSH -Flush both data received but not read and data written but not transmitted. -.El -.Pp -The -.Nm tcsendbreak -function transmits a continuous stream of zero-valued bits for four-tenths -of a second to the terminal referenced by -.Fa fd . -The -.Fa len -parameter is ignored in this implementation. -.Sh RETURN VALUES -Upon successful completion, all of these functions return a value of zero. -.Sh ERRORS -If any error occurs, a value of -1 is returned and the global variable -.Va errno -is set to indicate the error, as follows: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa fd -argument is not a valid file descriptor. -.It Bq Er EINVAL -The -.Fa action -argument is not a proper value. -.It Bq Er ENOTTY -The file associated with -.Fa fd -is not a terminal. -.It Bq Er EINTR -A signal interrupted the -.Nm tcdrain -function. -.El -.Sh SEE ALSO -.Xr tcsetattr 3 , -.Xr termios 4 -.Sh STANDARDS -The -.Nm tcsendbreak , -.Nm tcdrain , -.Nm tcflush -and -.Nm tcflow -functions are expected to be compliant with the -.St -p1003.1-88 -specification. diff --git a/lib/libc/gen/tcsetattr.3 b/lib/libc/gen/tcsetattr.3 deleted file mode 100644 index 8a58c0695045..000000000000 --- a/lib/libc/gen/tcsetattr.3 +++ /dev/null @@ -1,333 +0,0 @@ -.\" $NetBSD: tcsetattr.3,v 1.5 1995/02/27 05:53:26 cgd Exp $ -.\" -.\" Copyright (c) 1991 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)tcsetattr.3 5.2 (Berkeley) 3/4/92 -.\" -.Dd "March 4, 1992" -.Dt TCSETATTR 3 -.Os -.Sh NAME -.Nm cfgetispeed , -.Nm cfsetispeed , -.Nm cfgetospeed , -.Nm cfsetospeed , -.Nm cfsetspeed , -.Nm cfmakeraw , -.Nm tcgetattr , -.Nm tcsetattr -.Nd manipulating the termios structure -.Sh SYNOPSIS -.Fd #include -.Ft speed_t -.Fn cfgetispeed "const struct termios *t" -.Ft int -.Fn cfsetispeed "struct termios *t" "speed_t speed" -.Ft speed_t -.Fn cfgetospeed "const struct termios *t" -.Ft int -.Fn cfsetospeed "struct termios *t" "speed_t speed" -.Ft void -.Fn cfsetspeed "struct termios *t" "speed_t speed" -.Ft void -.Fn cfmakeraw "struct termios *t" -.Ft int -.Fn tcgetattr "int fd" "struct termios *t" -.Ft int -.Fn tcsetattr "int fd" "int action" "const struct termios *t" -.Sh DESCRIPTION -The -.Nm cfmakeraw , -.Nm tcgetattr -and -.Nm tcsetattr -functions are provided for getting and setting the termios structure. -.Pp -The -.Nm cfgetispeed , -.Nm cfsetispeed , -.Nm cfgetospeed , -.Nm cfsetospeed -and -.Nm cfsetspeed -functions are provided for getting and setting the baud rate values in -the termios structure. -The effects of the functions on the terminal as described below -do not become effective, nor are all errors detected, until the -.Nm tcsetattr -function is called. -Certain values for baud rates set in the termios structure and passed to -.Nm tcsetattr -have special meanings. -These are discussed in the portion of the manual page that describes the -.Nm tcsetattr -function. -.Sh GETTING AND SETTING THE BAUD RATE -The input and output baud rates are found in the termios structure. -The unsigned integer -.Li speed_t -is typdef'd in the include file -.Aq Pa termios.h . -The value of the integer corresponds directly to the baud rate being -represented, however, the following symbolic values are defined. -.Bd -literal -#define B0 0 -#define B50 50 -#define B75 75 -#define B110 110 -#define B134 134 -#define B150 150 -#define B200 200 -#define B300 300 -#define B600 600 -#define B1200 1200 -#define B1800 1800 -#define B2400 2400 -#define B4800 4800 -#define B9600 9600 -#define B19200 19200 -#define B38400 38400 -#ifndef _POSIX_SOURCE -#define EXTA 19200 -#define EXTB 38400 -#endif /*_POSIX_SOURCE */ -.Ed -.Pp -The -.Nm cfgetispeed -function returns the input baud rate in the termios structure referenced by -.Fa tp . -.Pp -The -.Nm cfsetispeed -function sets the input baud rate in the termios structure referenced by -.Fa tp -to -.Fa speed . -.Pp -The -.Nm cfgetospeed -function returns the output baud rate in the termios structure referenced by -.Fa tp . -.Pp -The -.Nm cfsetospeed -function sets the output baud rate in the termios structure referenced by -.Fa tp -to -.Fa speed . -.Pp -The -.Nm cfsetspeed -function sets both the input and output baud rate in the termios structure -referenced by -.Fa tp -to -.Fa speed . -.Pp -Upon successful completion, the functions -.Nm cfsetispeed , -.Nm cfsetospeed , -and -.Nm cfsetspeed -return a value of 0. -Otherwise, a value of -1 is returned and the global variable -.Va errno -is set to indicate the error. -.Sh GETTING AND SETTING THE TERMIOS STATE -This section describes the functions that are used to control the general -terminal interface. -Unless otherwise noted for a specific command, these functions are restricted -from use by background processes. -Attempts to perform these operations shall cause the process group to be sent -a SIGTTOU signal. -If the calling process is blocking or ignoring SIGTTOU signals, the process -is allowed to perform the operation and the SIGTTOU signal is not sent. -.Pp -In all the functions, although -.Fa fd -is an open file descriptor, the functions affect the underlying terminal -file, not just the open file description associated with the particular -file descriptor. -.Pp -The -.Nm cfmakeraw -function sets the flags stored in the termios structure to a state disabling -all input and output processing, giving a -.Dq raw I/O path. -It should be noted that there is no function to reverse this effect. -This is because there are a variety of processing options that could be -re-enabled and the correct method is for an application to snapshot the -current terminal state using the function -.Nm tcgetattr , -setting raw mode with -.Nm cfmakeraw -and the subsequent -.Nm tcsetattr , -and then using another -.Nm tcsetattr -with the saved state to revert to the previous terminal state. -.Pp -The -.Nm tcgetattr -function copies the parameters associated with the terminal referenced -by -.Fa fd -in the termios structure referenced by -.Fa tp . -This function is allowed from a background process, however, the terminal -attributes may be subsequently changed by a foreground process. -.Pp -The -.Nm tcsetattr -function sets the parameters associated with the terminal from the -termios structure referenced by -.Fa tp . -The -.Fa action -field is created by -.Em or Ns 'ing -the following values, as specified in the include file -.Aq Pa termios.h . -.Bl -tag -width "TCSADRAIN" -.It Fa TCSANOW -The change occurs immediately. -.It Fa TCSADRAIN -The change occurs after all output written to -.Fa fd -has been transmitted to the terminal. -This value of -.Fa action -should be used when changing parameters that affect output. -.It Fa TCSAFLUSH -The change occurs after all output written to -.Fa fd -has been transmitted to the terminal -Additionally, any input that has been received but not read is discarded. -.It Fa TCSASOFT -If this value is -.Em or Ns 'ed -into the -.Fa action -value, the values of the -.Em c_cflag , -.Em c_ispeed , -and -.Em c_ospeed -fields are ignored. -.El -.Pp -The 0 baud rate is used to terminate the connection. -If 0 is specified as the output speed to the function -.Nm tcsetattr , -modem control will no longer be asserted on the terminal, disconnecting -the terminal. -.Pp -If zero is specified as the input speed to the function -.Nm tcsetattr , -the input baud rate will be set to the same value as that specified by -the output baud rate. -.Pp -If -.Nm tcsetattr -is unable able to make any of the requested changes, it returns -1 and -sets -.Va errno . -Otherwise, it makes all of the requested changes it can. -If the specified input and output baud rates differ and are a combination -that is not supported, neither baud rate is changed. -.Pp -Upon successful completion, the functions -.Nm tcgetattr -and -.Nm tcsetattr -return a value of 0. -Otherwise, they -return -1 and the global variable -.Va errno -is set to indicate the error, as follows: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa fd -argument to -.Nm tcgetattr -or -.Nm tcsetattr -was not a valid file descriptor. -.It Bq Er EINTR -The -.Nm tcsetattr -function was interrupted by a signal. -.It Bq Er EINVAL -The -.Fa action -argument to the -.Nm tcsetattr -function was not valid, or an attempt was made to change an attribute -represented in the termios structure to an unsupported value. -.It Bq Er ENOTTY -The file associated with the -.Fa fd -argument to -.Nm tcgetattr -or -.Nm tcsetattr -is not a terminal. -.El -.Sh SEE ALSO -.Xr tcsendbreak 3 , -.Xr termios 4 -.Sh STANDARDS -The -.Nm cfgetispeed , -.Nm cfsetispeed , -.Nm cfgetospeed , -.Nm cfsetospeed , -.Nm tcgetattr -and -.Nm tcsetattr -functions are expected to be compliant with the -.St -p1003.1-88 -specification. -The -.Nm cfmakeraw -and -.Nm cfsetspeed -functions, -as well as the -.Li TCSASOFT -option to the -.Nm tcsetattr -function are extensions to the -.St -p1003.1-88 -specification. diff --git a/lib/libc/gen/tcsetpgrp.3 b/lib/libc/gen/tcsetpgrp.3 deleted file mode 100644 index 48f3ed449c8e..000000000000 --- a/lib/libc/gen/tcsetpgrp.3 +++ /dev/null @@ -1,102 +0,0 @@ -.\" $NetBSD: tcsetpgrp.3,v 1.4 1995/02/27 05:53:33 cgd Exp $ -.\" -.\" Copyright (c) 1991 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)tcsetpgrp.3 5.3 (Berkeley) 3/29/92 -.\" -.Dd "March 29, 1992" -.Dt TCSETPGRP 3 -.Os -.Sh NAME -.Nm tcsetpgrp -.Nd set foreground process group ID -.Sh SYNOPSIS -.Fd #include -.Fd #include -.Ft int -.Fn tcsetpgrp "int fd" "pid_t pgrp_id" -.Sh DESCRIPTION -If the process has a controlling terminal, the -.Nm tcsetpgrp -function sets the foreground process group ID associated with the -terminal device to -.Fa pgrp_id . -The terminal device associated with -.Fa fd -must be the controlling terminal of the calling process and the -controlling terminal must be currently associated with the session -of the calling process. -The value of -.Fa pgrp_id -must be the same as the process group ID of a process in the same -session as the calling process. -.Pp -Upon successful completion, -.Nm tcsetpgrp -returns a value of zero. -.Sh ERRORS -If an error occurs, -.Nm tcgetpgrp -returns -1 and the global variable -.Va errno -is set to indicate the error, as follows: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa fd -argument is not a valid file descriptor. -.It Bq Er EINVAL -An invalid value of -.Fa pgrp_id -was specified. -.It Bq Er ENOTTY -The calling process does not have a controlling terminal, or the file -represented by -.Fa fd -is not the controlling terminal, or the controlling terminal is no -longer associated with the session of the calling process. -.It Bq Er EPERM -The -.Fa pgrp_id -argument does not match the process group ID of a process in the same -session as the calling process. -.El -.Sh SEE ALSO -.Xr setpgid 3 , -.Xr setsid 2 , -.Xr tcgetpgrp 3 -.Sh STANDARDS -The -.Nm tcsetpgprp -function is expected to be compliant with the -.St -p1003.1-88 -specification. diff --git a/lib/libc/gen/termios.c b/lib/libc/gen/termios.c deleted file mode 100644 index ef90dc50e3ff..000000000000 --- a/lib/libc/gen/termios.c +++ /dev/null @@ -1,250 +0,0 @@ -/* $NetBSD: termios.c,v 1.9 1995/02/27 05:53:41 cgd Exp $ */ - -/*- - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char sccsid[] = "@(#)termios.c 8.2 (Berkeley) 2/21/94"; -#else -static char rcsid[] = "$NetBSD: termios.c,v 1.9 1995/02/27 05:53:41 cgd Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -int -tcgetattr(fd, t) - int fd; - struct termios *t; -{ - - return (ioctl(fd, TIOCGETA, t)); -} - -int -tcsetattr(fd, opt, t) - int fd, opt; - const struct termios *t; -{ - struct termios localterm; - - if (opt & TCSASOFT) { - localterm = *t; - localterm.c_cflag |= CIGNORE; - t = &localterm; - } - switch (opt & ~TCSASOFT) { - case TCSANOW: - return (ioctl(fd, TIOCSETA, t)); - case TCSADRAIN: - return (ioctl(fd, TIOCSETAW, t)); - case TCSAFLUSH: - return (ioctl(fd, TIOCSETAF, t)); - default: - errno = EINVAL; - return (-1); - } -} - -int -#if __STDC__ -tcsetpgrp(int fd, pid_t pgrp) -#else -tcsetpgrp(fd, pgrp) - int fd; - pid_t pgrp; -#endif -{ - int s; - - s = pgrp; - return (ioctl(fd, TIOCSPGRP, &s)); -} - -pid_t -tcgetpgrp(fd) - int fd; -{ - int s; - - if (ioctl(fd, TIOCGPGRP, &s) < 0) - return ((pid_t)-1); - - return ((pid_t)s); -} - -speed_t -cfgetospeed(t) - const struct termios *t; -{ - - return (t->c_ospeed); -} - -speed_t -cfgetispeed(t) - const struct termios *t; -{ - - return (t->c_ispeed); -} - -int -cfsetospeed(t, speed) - struct termios *t; - speed_t speed; -{ - - t->c_ospeed = speed; - return (0); -} - -int -cfsetispeed(t, speed) - struct termios *t; - speed_t speed; -{ - - t->c_ispeed = speed; - return (0); -} - -int -cfsetspeed(t, speed) - struct termios *t; - speed_t speed; -{ - - t->c_ispeed = t->c_ospeed = speed; - return (0); -} - -/* - * Make a pre-existing termios structure into "raw" mode: character-at-a-time - * mode with no characters interpreted, 8-bit data path. - */ -void -cfmakeraw(t) - struct termios *t; -{ - t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); - t->c_oflag &= ~OPOST; - t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); - t->c_cflag &= ~(CSIZE|PARENB); - t->c_cflag |= CS8; - /* XXX set MIN/TIME */ -} - -int -tcsendbreak(fd, len) - int fd, len; -{ - struct timeval sleepytime; - - sleepytime.tv_sec = 0; - sleepytime.tv_usec = 400000; - if (ioctl(fd, TIOCSBRK, 0) == -1) - return (-1); - (void)select(0, 0, 0, 0, &sleepytime); - if (ioctl(fd, TIOCCBRK, 0) == -1) - return (-1); - return (0); -} - -int -tcdrain(fd) - int fd; -{ - - return (ioctl(fd, TIOCDRAIN, 0)); -} - -int -tcflush(fd, which) - int fd, which; -{ - int com; - - switch (which) { - case TCIFLUSH: - com = FREAD; - break; - case TCOFLUSH: - com = FWRITE; - break; - case TCIOFLUSH: - com = FREAD | FWRITE; - break; - default: - errno = EINVAL; - return (-1); - } - return (ioctl(fd, TIOCFLUSH, &com)); -} - -int -tcflow(fd, action) - int fd, action; -{ - struct termios term; - u_char c; - - switch (action) { - case TCOOFF: - return (ioctl(fd, TIOCSTOP, 0)); - case TCOON: - return (ioctl(fd, TIOCSTART, 0)); - case TCION: - case TCIOFF: - if (tcgetattr(fd, &term) == -1) - return (-1); - c = term.c_cc[action == TCIOFF ? VSTOP : VSTART]; - if (c != _POSIX_VDISABLE && write(fd, &c, sizeof(c)) == -1) - return (-1); - return (0); - default: - errno = EINVAL; - return (-1); - } - /* NOTREACHED */ -}