Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sad(7D)				    Devices			       sad(7D)

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, int command, int arg);

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

       The  fildes argument is an open file descriptor that refers to the  sad
       driver.	The command argument determines	the  control  function	to  be
       performed  as  described	below.	The arg	argument 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 com-
       mand-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   following	  com-
       mands:"7">SAD_SAPAllows	the  administrator  to configure the given de-
       vice's autopush information. arg	points to a  strapush structure, which
       contains	the following members:

	unit_t	 ap_cmd;
	major_t	 sap_major;
	minor_t	 sap_minor;
	minor_t	 sap_lastminor;
	unit_t	 sap_npush;
	unit_t	 sap_list [MAXAPUSH] [FMNAMESZ + 1];

       The   sap_cmd  field indicates the type of configuration	being done. It
       may take	on one of the following	values:

       "small and bold">CSAPiONESAP_RANGE       Configure a range of minor devices of a driver.

       SAP_ALL	       Configure all minor devices of a	driver.

       SAP_CLEAR       Undo configuration information for a driver.

       The  sap_major field is the major device	number of  the	device	to  be
       configured.  The	 sap_minor field is the	minor device number of the de-
       vice to be configured.  The  sap_lastminor field	is used	only with  the
       SAP_RANGE  command,   which configures a	range of minor devices between
       sap_minor and  sap_lastminor, inclusive.	The minor fields have no mean-
       ing for the  SAP_ALL command. The  sap_npush 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  sap_list is an array  of	NULL-terminated	 module	 names	to  be
       pushed in the order  in which they appear in the	list.

       When  using  the	  SAP_CLEAR command, the user sets only	 sap_major and
       sap_minor. This will undo the configuration information for any of  the
       other  commands.	  If  a	 previous  entry  was  configured as  SAP_ALL,
       sap_minor should	be set to zero.	If a previous entry was	configured  as
       SAP_RANGE  ,  sap_minor 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  mod-
		       ules  is	 invalid,  or  the list	of module names	is in-
		       valid.

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

       EEXIST	       The major-minor device pair is already configured.

       ERANGE	       The  command  is	  SAP_RANGE  and  sap_lastminor	is not
		       greater than  sap_minor,	or the command	is   SAP_CLEAR
		       and   sap_minor	is not equal to	the first minor	in the
		       range.

       ENODEV	       The command is  SAP_CLEAR and the device	is not config-
		       ured for	autopush.

       ENOSR	       An  internal  autopush  data  structure cannot be allo-
		       cated.

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

		       The  user  should  set  the   sap_major	and  sap_minor
		       fields of the strapush structure	to the major and minor
		       device  numbers,	 respectively,	of the device in ques-
		       tion. 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 val-
		       ues:

		       EFAULT	       arg points outside  the	allocated  ad-
				       dress space.

		       EINVAL	       The major device	number is invalid.

		       ENOSTR	       The major device	number does not	repre-
				       sent a  STREAMS driver.

		       ENODEV	       The device is not configured for	 auto-
				       push.

       SAD_VML	       Allows any user to validate a list of modules (that is,
		       to see if they are installed on the system). arg	 is  a
		       pointer	to  a	str_list  structure with the following
		       members:

		       int     sl_nmods;
			struct	str_mlist  *sl_modlist;

		       The  str_mlist structure	has the	following member:

		       char  l_name[FMNAMESZ+1];

		       sl_nmods	indicates the number of	entries	the  user  has
		       allocated  in  the  array and  sl_modlist 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 ad-
				       dress space.

		       EINVAL	       The  sl_nmods field  of	the   str_list
				       structure  is  less  than  or  equal to
				       zero.

SEE ALSO
       intro(2), ioctl(2), open(2)

       STREAMS Programming Guide

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

SunOS 5.10			  16 Apr 1997			       sad(7D)

NAME | SYNOPSIS | DESCRIPTION | COMMAND FUNCTIONS | SEE ALSO | DIAGNOSTICS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sad&sektion=7d&manpath=SunOS+5.10>

home | help