ddi_prop_remove_all man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

ddi_prop_create(9F)	 Kernel Functions for Drivers	   ddi_prop_create(9F)

NAME
       ddi_prop_create, ddi_prop_modify, ddi_prop_remove, ddi_prop_remove_all,
       ddi_prop_undefine - create,  remove,  or	 modify	 properties  for  leaf
       device drivers

SYNOPSIS
       #include <sys/conf.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int  ddi_prop_create(dev_t dev, dev_info_t *dip, int flags, char *name,
       caddr_t valuep, int length);

       int ddi_prop_undefine(dev_t  dev,  dev_info_t  *dip,  int  flags,  char
       *name);

       int  ddi_prop_modify(dev_t dev, dev_info_t *dip, int flags, char *name,
       caddr_t valuep, int length);

       int ddi_prop_remove(dev_t dev, dev_info_t *dip, char *name);

       void ddi_prop_remove_all(dev_info_t *dip);

INTERFACE LEVEL
       Solaris	DDI  specific  (Solaris	 DDI).	 The   ddi_prop_create()   and
       ddi_prop_modify()   functions  are  obsolete.  Use  ddi_prop_update(9F)
       instead of these functions.

PARAMETERS
       ddi_prop_create()

       dev	       dev_t of the device.

       dip	       dev_info_t pointer of the device.

       flags	       flag  modifiers.	 The  only  possible  flag  value   is
		       DDI_PROP_CANSLEEP: Memory allocation may sleep.

       name	       name of property.

       valuep	       pointer to property value.

       length	       property length.

       ddi_prop_undefine()

       dev	       dev_t of the device.

       dip	       dev_info_t pointer of the device.

       flags	       flag   modifiers.  The  only  possible  flag  value  is
		       DDI_PROP_CANSLEEP: Memory allocation may sleep.

       name	       name of property.

       ddi_prop_modify()

       dev	       dev_t of the device.

       dip	       dev_info_t pointer of the device.

       flags	       flag  modifiers.	 The  only  possible  flag  value   is
		       DDI_PROP_CANSLEEP: Memory allocation may sleep.

       name	       name of property.

       valuep	       pointer to property value.

       length	       property length.

       ddi_prop_remove()

       dev	       dev_t of the device.

       dip	       dev_info_t pointer of the device.

       name	       name of property.

       ddi_prop_remove_all()

       dip	       dev_info_t pointer of the device.

DESCRIPTION
       Device  drivers have the ability to create and manage their own proper‐
       ties as well as gain access to properties that the  system  creates  on
       behalf of the driver. A driver uses ddi_getproplen(9F) to query whether
       or not a specific property exists.

       Property creation is done by creating a new property definition in  the
       driver's property list associated with dip.

       Property	 definitions  are  stacked; they are added to the beginning of
       the driver's property list when created. Thus, when searched  for,  the
       most  recent  matching  property definition will be found and its value
       will be return to the caller.

       The individual functions are described as follows:

       ddi_prop_create()

	   ddi_prop_create() adds a property to the device's property list. If
	   the property is not associated with any particular dev but is asso‐
	   ciated with the physical  device  itself,  then  the	 argument  dev
	   should  be  the special device DDI_DEV_T_NONE. If you do not have a
	   dev for your device (for example during attach(9E) time),  you  can
	   create   one	  using	  makedevice(9F)   with	  a  major  number  of
	   DDI_MAJOR_T_UNKNOWN. ddi_prop_create() will then make  the  correct
	   dev for your device.

	   For	boolean	 properties,  you  must set length to 0. For all other
	   properties, the length argument must be set to the number of	 bytes
	   used by the data structure representing the property being created.

	   Note	 that  creating	 a property involves allocating memory for the
	   property list, the property name and the property value.  If	 flags
	   does	  not  contain	DDI_PROP_CANSLEEP,  ddi_prop_create()  returns
	   DDI_PROP_NO_MEMORY on memory allocation failure or DDI_PROP_SUCCESS
	   if  the  allocation	succeeded.  If	DDI_PROP_CANSLEEP was set, the
	   caller may sleep until memory becomes available.

       ddi_prop_undefine()

	   ddi_prop_undefine() is a special case of  property  creation	 where
	   the	value  of  the property is set to undefined. This property has
	   the effect of terminating a property search at the current  devinfo
	   node,  rather  than	allowing  the search to proceed up to ancestor
	   devinfo nodes. However, ddi_prop_undefine() will  not  terminate  a
	   search	 when	     the       ddi_prop_get_int64(9F)	    or
	   ddi_prop_lookup_int64_array(9F) routines are	 used  for  lookup  of
	   64-bit property value. See ddi_prop_op(9F).

	   Note that undefining properties does involve memory allocation, and
	   therefore, is subject to the same memory allocation constraints  as
	   ddi_prop_create().

       ddi_prop_modify()

	   ddi_prop_modify()  modifies the length and the value of a property.
	   If ddi_prop_modify() finds the property in  the  driver's  property
	   list,   allocates   memory  for  the	 property  value  and  returns
	   DDI_PROP_SUCCESS. If the  property  was  not	 found,	 the  function
	   returns DDI_PROP_NOT_FOUND.

	   Note	 that modifying properties does involve memory allocation, and
	   therefore, is subject to the same memory allocation constraints  as
	   ddi_prop_create().

       ddi_prop_remove()

	   ddi_prop_remove()  unlinks  a  property  from the device's property
	   list. If ddi_prop_remove() finds the property (an  exact  match  of
	   both	 nameand dev), it unlinks the property, frees its memory,  and
	   returns DDI_PROP_SUCCESS, otherwise, it returns DDI_PROP_NOT_FOUND.

       ddi_prop_remove_all()

	   ddi_prop_remove_all() removes the properties	 of  all  the  dev_t's
	   associated with the dip. It is called before unloading a driver.

RETURN VALUES
       The ddi_prop_create() function returns the following values:

       DDI_PROP_SUCCESS		       On success.

       DDI_PROP_NO_MEMORY	       On memory allocation failure.

       DDI_PROP_INVAL_ARG	       If an attempt is made to create a prop‐
				       erty with dev equal to DDI_DEV_T_ANY or
				       if  name	 is  NULL  or name is the NULL
				       string.

       The ddi_prop_ undefine() function returns the following values:

       DDI_PROP_SUCCESS		       On success.

       DDI_PROP_NO_MEMORY	       On memory allocation failure.

       DDI_PROP_INVAL_ARG	       If an attempt is made to create a prop‐
				       erty  with dev DDI_DEV_T_ANY or if name
				       is NULL or name is the NULL string.

       The ddi_prop_modify() function returns the following values:

       DDI_PROP_SUCCESS		       On success.

       DDI_PROP_NO_MEMORY	       On memory allocation failure.

       DDI_PROP_INVAL_ARG	       If an attempt is made to create a prop‐
				       erty with dev equal to DDI_DEV_T_ANY or
				       if name is NULL or  name	 is  the  NULL
				       string.

       DDI_PROP_NOT_FOUND	       On property search failure.

       The ddi_prop_remove() function returns the following values:

       DDI_PROP_SUCCESS		       On success.

       DDI_PROP_INVAL_ARG	       If an attempt is made to create a prop‐
				       erty with dev equal to DDI_DEV_T_ANY or
				       if  name	 is  NULL  or name is the NULL
				       string.

       DDI_PROP_NOT_FOUND	       On property search failure.

CONTEXT
       If DDI_PROP_CANSLEEP is set, these functions can cannot be called  from
       interrupt  context. Otherwise, they can be called from user, interrupt,
       or kernel context.

EXAMPLES
       Example 1: Creating a Property

       The following example creates a property called nblocks for each parti‐
       tion on a disk.

       int propval = 8192;

       for (minor = 0; minor < 8; minor ++) {
	       (void) ddi_prop_create(makedevice(DDI_MAJOR_T_UNKNOWN, minor),
		   dev, DDI_PROP_CANSLEEP, "nblocks", (caddr_t) &propval,
		   sizeof (int));
		   ...
       }

ATTRIBUTES
       See attributes(5) for a description of the following attributes:

       ┌────────────────────────────┬──────────────────────────────┐
       │      ATTRIBUTE TYPE	    │	    ATTRIBUTE VALUE	   │
       ├────────────────────────────┼──────────────────────────────┤
       │Stability Level		    │ ddi_prop_create()	       and │
       │			    │ ddi_prop_modify() are  Obso‐ │
       │			    │ lete			   │
       └────────────────────────────┴──────────────────────────────┘

SEE ALSO
       driver.conf(4),	  attributes(5),    attach(9E),	   ddi_getproplen(9F),
       ddi_prop_op(9F), ddi_prop_update(9F), makedevice(9F)

       Writing Device Drivers

SunOS 5.10			  16 Jan 2006		   ddi_prop_create(9F)
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net