Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sad(7) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

ioctl(2)

open(2)



sad(7)                           UNIX System V                           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 (fildes, command, arg);
      int fildes, command;

DESCRIPTION
      The STREAMS Administrative Driver provides an interface for applications
      to perform administrative operations on STREAMS modules and drivers.  The
      interface is provided through ioctl(2) commands.  Privileged operations
      may access the sad driver via /dev/sad/admin.  Unprivileged operations
      may access the sad driver via /dev/sad/user.

      fildes is an open file descriptor that refers to the sad driver.  command
      determines the control function to be performed as described below.  arg
      represents additional information that is needed by this command.  The
      type of arg depends upon the command, but it is generally an integer or a
      pointer to a command-specific data structure.

COMMAND FUNCTIONS
      The autopush facility [see autopush(1M)] allows one to configure a list
      of modules to be automatically pushed on a stream when a driver is first
      opened.  Autopush is controlled by the next commands.

      SADSAP      Allows the administrator to configure the autopush
                   information for the given device.  arg points to a strapush
                   structure which contains the following members:
                        uint   sapcmd;
                        long   sapmajor;
                        long   sapminor;
                        long   saplastminor;
                        long   sapnpush;
                        uint   saplist[MAXAPUSH] [FMNAMESZ + 1];
                   The sapcmd field indicates the type of configuration being
                   done.  It may take on one of the following values:

                   SAPONE      Configure one minor device of a driver.

                   SAPRANGE    Configure a range of minor devices of a driver.

                   SAPALL      Configure all minor devices of a driver.

                   SAPCLEAR    Undo configuration information for a driver.





10/89                                                                    Page 1







sad(7)                           UNIX System V                           sad(7)


                   The sapmajor field is the major device number of the device
                   to be configured.  The sapminor field is the minor device
                   number of the device to be configured.  The saplastminor
                   field is used only with the SAPRANGE command, with which a
                   range of minor devices between sapminor and saplastminor,
                   inclusive, are to be configured.  The minor fields have no
                   meaning for the SAPALL command.  The sapnpush field
                   indicates the number of modules to be automatically pushed
                   when the device is opened.  It must be less than or equal to
                   MAXAPUSH, defined in sad.h.  It must also be less than or
                   equal to NSTRPUSH, the maximum number of modules that can be
                   pushed on a stream, defined in the kernel master file.  The
                   field saplist is an array of module names to be pushed in
                   the order in which they appear in the list.

                   When using the SAPCLEAR command, the user sets only
                   sapmajor and sapminor.  This will undo the configuration
                   information for any of the other commands.  If a previous
                   entry was configured as SAPALL, sapminor should be set to
                   zero.  If a previous entry was configured as SAPRANGE,
                   sapminor should be set to the lowest minor device number in
                   the range configured.

                   On failure, errno is set to the following value:

                   EFAULT       arg points outside the allocated address space.

                   EINVAL       The major device number is invalid, the number
                                of modules is invalid, or the list of module
                                names is invalid.

                   ENOSTR       The major device number does not represent a
                                STREAMS driver.

                   EEXIST       The major-minor device pair is already
                                configured.

                   ERANGE       The command is SAPRANGE and saplastminor is
                                not greater than sapminor, or the command is
                                SAPCLEAR and sapminor is not equal to the
                                first minor in the range.

                   ENODEV       The command is SAPCLEAR and the device is not
                                configured for autopush.

                   ENOSR        An internal autopush data structure cannot be
                                allocated.

      SADGAP      Allows any user to query the sad driver to get the autopush
                   configuration information for a given device.  arg points to
                   a strapush structure as described in the previous command.



Page 2                                                                    10/89







sad(7)                           UNIX System V                           sad(7)


                   The user should set the sapmajor and sapminor fields of
                   the strapush structure to the major and minor device
                   numbers, respectively, of the device in question.  On
                   return, the strapush structure will be filled in with the
                   entire information used to configure the device.  Unused
                   entries in the module list will be zero-filled.

                   On failure, errno is set to one of the following values:

                   EFAULT       arg points outside the allocated address space.

                   EINVAL       The major device number is invalid.

                   ENOSTR       The major device number does not represent a
                                STREAMS driver.

                   ENODEV       The device is not configured for autopush.

      SADVML      Allows any user to validate a list of modules (such as, to
                   see if they are installed on the system.)  arg is a pointer
                   to a strlist structure with the following members:
                        int         slnmods;
                        struct strmlist*slmodlist;
                   The strmlist structure has the following member:
                        char        lname[FMNAMESZ+1];
                   slnmods indicates the number of entries the user has
                   allocated in the array and slmodlist points to the array of
                   module names.  The return value is 0 if the list is valid, 1
                   if the list contains an invalid module name, or -1 on
                   failure.  On failure, errno is set to one of the following
                   values:

                   EFAULT       arg points outside the allocated address space.

                   EINVAL       The slnmods field of the strlist structure is
                                less than or equal to zero.

SEE ALSO
      intro(2), ioctl(2), open(2)
      Programmer's Guide: STREAMS

DIAGNOSTICS
      Unless specified otherwise above, the return value from ioctl is 0 upon
      success and -1 upon failure with errno set as indicated.










10/89                                                                    Page 3





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