Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  IOCTL(2)                                                 IOCTL(2)



  NAME
       ioctl - control device

  SYNOPSIS
       int ioctl (fildes, request, arg)
       int fildes, request;

  DESCRIPTION
       ioctl 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
       arguments request and arg are passed to the file designated
       by fildes and are interpreted by the device driver.  This
       control is infrequently used on non-STREAMS devices, with
       the basic input/output functions performed through the
       read(2) and write(2) system calls.

       For STREAMS files, specific functions are performed by the
       ioctl call as described in streamio(7).

       Fildes is an open file descriptor that refers to a device.
       Request selects the control function to be performed and
       will depend on the device being addressed.  Arg represents
       additional information that is needed by this specific
       device to perform the requested function.  The data type of
       arg depends upon the particular control request, but it is
       either an integer or a pointer to a device-specific data
       structure.

       In addition to device-specific and STREAMS functions,
       generic functions are provided by more than one device
       driver, for example, the general terminal interface [see
       termio(7)].

       ioctl will fail for any type of file if one or more of the
       following are true:

       [EBADF]        Fildes is not a valid open file descriptor.

       [ENOTTY]       Fildes is not associated with a device driver


  Page 1                                                   May 1989


















  IOCTL(2)                                                 IOCTL(2)



                      that accepts control functions.

       [EINTR]        A signal was caught during the ioctl system
                      call.

       ioctl will also fail if the device driver detects an error.
       In this case, the error is passed through ioctl without
       change to the caller.  A particular driver might not have
       all of the following error cases.  Other requests to device
       drivers will fail if one or more of the following are true:

       [EFAULT]       Request requires a data transfer to or from a
                      buffer pointed to by arg, but some part of
                      the buffer is outside the process's allocated
                      space.

       [EINVAL]       Request or arg is not valid for this device.

       [EIO]          Some physical I/O error has occurred.

       [ENXIO]        The request and arg are valid for this device
                      driver, but the service requested can not be
                      performed on this particular subdevice.

       [ENOLINK]      Fildes is on a remote machine and the link to
                      that machine is no longer active.

       STREAMS errors are described in streamio(7).

  SEE ALSO
       streamio(7), termio(7) in the System Administrator's
       Reference Manual.

  DIAGNOSTICS
       Upon successful completion, the value returned depends upon
       the device control function, but must be a non-negative
       integer. Otherwise, a value of -1 is returned and errno is
       set to indicate the error.




  Page 2                                                   May 1989
















Typewritten Software • bear@typewritten.org • Edmonds, WA 98026