 |
Index for Section 7 |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
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
fildes
Specifies an open file descriptor of the sad driver.
command
Specifies the administrative function to be performed.
arg 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 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:
SAD_GAP
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.
SAD_SAP
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];
};
sap_cmd
Allows you to specify the type of configuration to perform. This
field can have the following values:
SAP_ALL
Configures all minor devices.
SAP_RANGE
Configures a range of minor devices.
SAP_ONE
Configures a single minor device.
SAP_CLEAR
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.
sap_major
Specifies the major device number.
Specifies the minor device number.
sap_lastminor
Specifies the range of minor devices.
sap_npush
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.
sap_list[MAXPUSH][FMNAMESZ+1]
Specifies, in order, the array of modules to push.
SAD_VML
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;
};
sl_nmods
Specifies the number of entries you have allocated in an array.
sl_modlist
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). Refer to the
streamio(7) 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
[EFAULT]
The arg parameter points outside the allocated address space.
[EINVAL]
The major device number (sad_major) is invalid.
[ENODEV]
The device is not configured for autopush.
[ENOSTR]
The major device does not represent a STREAMS driver.
SAD_SAP
[EEXIST]
The specified major/minor device number pair (sad_major/sad_minor) has
already been configured.
[EFAULT]
The arg parameter points outside the allocated address space.
[EINVAL]
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.
[ENODEV]
The device is not configured for autopush. This value is returned from
a SAD_GAP command.
[ENOSR]
A internal autopush data structure cannot be allocated.
[ENOSTR]
The major device does not represent a STREAMS driver.
[ERANGE]
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
[EFAULT]
The arg parameter points outside the allocated address space.
[EINVAL]
The list of module names is invalid.
SEE ALSO
Commands: autopush(8)
Functions: ioctl(2)
Interfaces: streamio(7)
 |
Index for Section 7 |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|