 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			221 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			221 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: ioctl.2,v 1.23 2010/12/19 22:19:27 wiz Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 1980, 1991, 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. 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.
 | |
| .\"
 | |
| .\"     @(#)ioctl.2	8.2 (Berkeley) 12/11/93
 | |
| .\"
 | |
| .Dd December 19, 2010
 | |
| .Dt IOCTL 2
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm ioctl
 | |
| .Nd control device
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In sys/ioctl.h
 | |
| .Ft int
 | |
| .Fn ioctl "int d" "unsigned long request" "..."
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Fn ioctl
 | |
| function manipulates the underlying device parameters of special files.
 | |
| In particular, many operating
 | |
| characteristics of character special files (e.g. terminals)
 | |
| may be controlled with
 | |
| .Fn ioctl
 | |
| requests.
 | |
| The argument
 | |
| .Fa d
 | |
| must be an open file descriptor.
 | |
| .Pp
 | |
| An
 | |
| .Fn ioctl
 | |
| .Fa request
 | |
| has encoded in it whether the argument is an
 | |
| .Dq in ,
 | |
| .Dq out ,
 | |
| or
 | |
| .Dq inout
 | |
| parameter, and the size of the first variadic argument
 | |
| in bytes.
 | |
| Note that there can be only one variadic argument but cannot be represented as
 | |
| a
 | |
| .Ft "void *"
 | |
| argument in the prototype because this would require a cast to pass integral
 | |
| types without warnings.
 | |
| Macros and defines used in specifying an
 | |
| .Fn ioctl
 | |
| .Fa request
 | |
| are located in the header
 | |
| .In sys/ioctl.h .
 | |
| .Sh GENERIC IOCTLS
 | |
| Some ioctls are applicable to any file descriptor.
 | |
| These include:
 | |
| .Bl -tag -width "xxxxxx"
 | |
| .It Dv FIOCLEX
 | |
| Set close-on-exec flag.
 | |
| The file will be closed when
 | |
| .Xr exec 3
 | |
| is invoked
 | |
| (This is equivalent to
 | |
| .Fn fcntl
 | |
| .Dv F_SETFD
 | |
| .Dv FD_CLOEXEC
 | |
| and the
 | |
| .Fn fcntl
 | |
| form should be preferred).
 | |
| .It Dv FIONCLEX
 | |
| Clear close-on-exec flag.
 | |
| The file will remain open across
 | |
| .Xr exec 3
 | |
| (This is equivalent to
 | |
| .Fn fcntl
 | |
| .Dv F_SETFD
 | |
| .Dv 0
 | |
| and the
 | |
| .Fn fcntl
 | |
| form should be preferred).
 | |
| .El
 | |
| .Pp
 | |
| Some generic ioctls are not implemented for all types of file
 | |
| descriptors.
 | |
| These include:
 | |
| .Bl -tag -width "xxxxxx"
 | |
| .It Dv FIONREAD "int"
 | |
| Get the number of bytes that are immediately available for reading.
 | |
| .It Dv FIONWRITE "int"
 | |
| Get the number of bytes in the descriptor's send queue.
 | |
| These bytes are data which has been written to the descriptor but
 | |
| which are being held by the kernel for further processing.
 | |
| The nature of the required processing depends on the underlying device.
 | |
| For tty devices, these bytes are typically queued for delivery
 | |
| to the tty hardware.
 | |
| For TCP sockets, these bytes have not yet been acknowledged by the
 | |
| other side of the connection.
 | |
| For files, this operation always returns zero as files do not have
 | |
| send queues.
 | |
| .It Dv FIONSPACE "int"
 | |
| Get the free space in the descriptor's send queue.
 | |
| This value is the size of the send queue minus the number of bytes
 | |
| being held in the queue.
 | |
| Note: while this value represents the number of bytes that may be
 | |
| added to the queue, other resource limitations may cause a write
 | |
| not larger than the send queue's space to be blocked.
 | |
| One such limitation would be a lack of network buffers for a write
 | |
| to a network connection.
 | |
| .It Dv FIONBIO "int"
 | |
| Set non-blocking I/O mode if the argument is non-zero.
 | |
| In non-blocking mode,
 | |
| .Xr read 2
 | |
| or
 | |
| .Xr write 2
 | |
| calls return
 | |
| .Dv \-1
 | |
| and set
 | |
| .Va errno
 | |
| to
 | |
| .Er EAGAIN
 | |
| immediately when no data is available
 | |
| (This is equivalent to
 | |
| .Fn fcntl
 | |
| .Dv F_SETFL
 | |
| .Dv O_NONBLOCK
 | |
| and the
 | |
| .Fn fcntl
 | |
| form should be preferred).
 | |
| .It Dv FIOASYNC "int"
 | |
| Set asynchronous I/O mode if the argument is non-zero
 | |
| (This is equivalent to
 | |
| .Fn fcntl
 | |
| .Dv F_SETFL
 | |
| .Dv O_ASYNC
 | |
| and the
 | |
| .Fn fcntl
 | |
| form should be preferred).
 | |
| In asynchronous mode, the process or process group specified by
 | |
| .Dv FIOSETOWN
 | |
| will start receiving
 | |
| .Dv SIGIO
 | |
| signals when data is available.
 | |
| The
 | |
| .Dv SIGIO
 | |
| signal will be delivered when data is available on the file
 | |
| descriptor.
 | |
| .It Dv FIOSETOWN, FIOGETOWN "int"
 | |
| Set/get the process or the process group (if negative) that should receive
 | |
| .Dv SIGIO
 | |
| signals when data is available
 | |
| (This is equivalent to
 | |
| .Fn fcntl
 | |
| .Dv F_SETOWN
 | |
| .Ft pid_t
 | |
| and the
 | |
| .Ft fcntl
 | |
| form should be preferred).
 | |
| .El
 | |
| .Sh RETURN VALUES
 | |
| If an error has occurred, a value of \-1 is returned and
 | |
| .Va errno
 | |
| is set to indicate the error.
 | |
| .Sh ERRORS
 | |
| .Fn ioctl
 | |
| will fail if:
 | |
| .Bl -tag -width Er
 | |
| .It Bq Er EBADF
 | |
| .Fa d
 | |
| is not a valid descriptor.
 | |
| .It Bq Er EFAULT
 | |
| .Fa argp
 | |
| points outside the process's allocated address space.
 | |
| .It Bq Er EINVAL
 | |
| .Fa request
 | |
| or
 | |
| .Fa argp
 | |
| is not valid.
 | |
| .It Bq Er ENOTTY
 | |
| .Fa d
 | |
| is not associated with a character
 | |
| special device; or
 | |
| the specified request does not apply to the kind
 | |
| of object that the descriptor
 | |
| .Fa d
 | |
| references.
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr mt 1 ,
 | |
| .Xr execve 2 ,
 | |
| .Xr fcntl 2 ,
 | |
| .Xr intro 4 ,
 | |
| .Xr tty 4
 | |
| .Sh HISTORY
 | |
| An
 | |
| .Fn ioctl
 | |
| function call appeared in
 | |
| .At v7 .
 |