sad - STREAMS Administrative Driver
#include <sys/types.h> #include <sys/conf.h> #include
<sys/sad.h> #include <sys/stropts.h>
int ioctl(
int fildes,
const command,
int arg );
Specifies an open file descriptor of the sad driver.
Specifies the administrative function to be performed.
Points to a data structure.
The sad driver provides an interface to the autopush
facility using the ioctl() function. As an interface, the
sad driver enables administrative 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 strapush 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 settings. 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
modules 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.
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). Refer to the
streamio(7) reference page for further details.
RETURN VALUES [Toc] [Back]
Unless specified otherwise, upon successful completion,
the sad ioctl() commands return a value of 0 (zero). Otherwise,
a value of -1 is returned.
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 command. 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.
Commands: autopush(8)
Functions: ioctl(2)
Interfaces: streamio(7)
sad(7)
[ Back ] |