Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ioctl(2) [osf1 man page]

ioctl(2)							System Calls Manual							  ioctl(2)

NAME
ioctl - Controls devices SYNOPSIS
#include <stropts.h> int ioctl( int fildes, int request, ... /* arg */); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: ioctl(): XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Specifies the file descriptor of the requested device. Specifies the ioctl command to be performed on the device. Specifies parameters for this request. The type of arg is dependent on the specific ioctl() request and device to which the ioctl is targeted. See the appro- priate Section 7 reference page or the documentation accompanying the device for more information. DESCRIPTION
The ioctl() function performs a variety of control functions on devices and STREAMS. For non-STREAMS files, the functions performed by this call are device-specific control functions. The request and arg parameters are passed to the file designated by fildes and are inter- preted by the device driver. This control is occasionally used on non-STREAMS devices, with the basic input/output functions performed through the read() and write() system calls. An ioctl() request has encoded in it whether the parameter is an "in" parameter or "out" parameter, and the size of the arg parameter in bytes. Macros and defines used to specify an ioctl() request are located in the <stropts.h> header file. For STREAMS files, specific functions are performed by the ioctl() function as described in streamio(7). STREAMS errors are described in streamio(7). RETURN VALUES
Upon successful completion, the ioctl() function returns a value other than -1 that depends upon the STREAMS device control function. If an error occurs, a value of -1 is returned and errno is set to indicate the error. ERRORS
The ioctl() function sets errno to the specified values for the following general conditions: The fildes parameter is not a valid open file descriptor. A signal was caught during the ioctl() operation. The STREAM or multiplexer referenced by fildes is linked (directly or indi- rectly) downstream from a multiplexer. If an underlying device driver detects an error, errno may be set to one of the following values: Either the request or arg parameter is not valid. Some physical I/O error has occurred. The fildes parameter is not associated with a STREAMS device that accepts control func- tions. (Defined for Issue 4 Version 2 and higher issues of the XSH specification.) [Tru64 UNIX] The fildes parameter is not associated with a character special device, or the specified request does not apply to the kind of object that the fildes parameter references. The request and arg parameters are valid for this device driver, but the service requested cannot be performed on the particular subdevice. The fildes parameter refers to a valid STREAMS device, but the corresponding device driver does not support the ioctl() function. RELATED INFORMATION
Functions: exec(2), fcntl(2) Files: tty(7), streamio(7) Standards: standards(5) delim off ioctl(2)

Check Out this Related Man Page

sad(7)							 Miscellaneous Information Manual						    sad(7)

NAME
sad - STREAMS Administrative Driver SYNOPSIS
#include <sys/types.h> #include <sys/conf.h> #include <sys/sad.h> #include <sys/stropts.h> int ioctl( int fildes, const command, int arg); PARAMETERS
Specifies an open file descriptor of the sad driver. Specifies the administrative function to be performed. Points to a data structure. DESCRIPTION
The sad driver provides an interface to the autopush facility using the ioctl() function. As an interface, the sad driver enables adminis- trative tasks to be performed on STREAMS modules and drivers. Specifically, specifying the command parameter to the ioctl() function, an administrator can configure autopush information for a device, get information on a device, or check a list of modules. To access the sad driver, use /dev/sad/admin. ioctl Commands The commands used to perform administrative functions on a STREAMS module or driver are specified by the following ioctl() commands: Lets you use the sad driver to obtain autopush configuration information for a device by setting the sap_major and sap_minor fields of the stra- push structure (see the SAD_SAP command) to the major and minor device numbers of the device being queried. Upon successful completion, the strapush structure contains all of the information used to configure the device. Values of 0 (zero) will appear in any unused entry in the module list. Allows you to configure autopush information for a device. The arg parameter points to a strapush structure (defined in the sad.h header file), whose members are as follows: struct strapush { uint sap_cmd; long sap_major; long sap_minor; long sap_lastminor; long sap_npush; char sap_list[MAXAPUSH][FMNAMESZ+1]; }; Allows you to specify the type of configuration to perform. This field can have the following values: Configures all minor devices. Configures a range of minor devices. Configures a single minor device. Clears the previous set- tings. Specify only the sap_major and sap_minor fields when using this command. If a previous entry specified SAP_ALL, set the sap_minor field to 0 (zero). If a previous entry was specified as SAP_RANGE, set the sap_minor field to the lowest minor device number in the range. Specifies the major device number. Specifies the minor device number. Specifies the range of minor devices. Specifies the number of mod- ules to push. This number must be no more than MAXAPUSH, which is defined in sad.h. Additionally, this number must not exceed NSTRPUSH. Specifies, in order, the array of modules to push. Enables you to check a list of modules. For example, you can determine if a specific module has been installed. The arg parameter points to a str_list structure (defined in the stropts.h header file), whose members are as follows: struct str_list { int sl_nmods; struct str_mlist *sl_modlist; }; Specifies the number of entries you have allocated in an array. Points to the array of module names. The str_mlist structure (also in the stropts.h header file) is as follows: struct str_mlist { char 1_name[FMNAMESZ+1]; }; where 1_name[FMNAMESZ+1] specifies the array of module names. If the 1_name[FMNAMESZ+1] array is valid, the SAD_VML command returns a value of 0 (zero). If the array contains an invalid module name, the command returns a value of 1. Upon failure, the command returns a value of -1. NOTES
As a STREAMS driver, sad also supports the normal STREAMS ioctl(): int ioctl( int fildes, const I_STR, struct strioctl *strp); In this form, specify the ic_cmd field in the strioctl structure to either SAD_SAP, SAD_GAP, or SAD_VML. The ic_dp field points to the strapush structure (see the SAD_SAP command in the DESCRIPTION section). Refer to the streamio() reference page for further details. RETURN VALUES Unless specified otherwise, upon successful completion, the sad ioctl() commands return a value of 0 (zero). Otherwise, a value of -1 is returned. ERRORS
If any of the following conditions occur, the sad ioctl commands return the corresponding value: SAD_GAP The arg parameter points outside the allocated address space. The major device number (sad_major) is invalid. The device is not configured for autopush. The major device does not represent a STREAMS driver. SAD_SAP The specified major/minor device number pair (sad_major/sad_minor) has already been configured. The arg parameter points outside the allocated address space. The major device number (sad_major) is invalid, the number of modules (sap_list[MAXPUSH][FMNAMESZ+1]) is invalid, or the list of module names is invalid. The device is not configured for autopush. This value is returned from a SAD_GAP com- mand. A internal autopush data structure cannot be allocated. The major device does not represent a STREAMS driver. The sap.lastminor field is less than the sap_minor field when the command is SAP_RANGE, or the minor device specified in a SAP_CLEAR command does not exist. SAD_VML The arg parameter points outside the allocated address space. The list of module names is invalid. RELATED INFORMATION
Commands: autopush(8). Functions: ioctl(2). Interfaces: streamio(7). delim off sad(7)
Man Page