ddi_prop_update_byte_array man page on OpenIndiana

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

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

NAME
       ddi_prop_update,	    ddi_prop_update_int_array,	  ddi_prop_update_int,
       ddi_prop_update_string_array,			ddi_prop_update_int64,
       ddi_prop_update_int64_array,		       ddi_prop_update_string,
       ddi_prop_update_byte_array - update properties

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

       int ddi_prop_update_int_array(dev_t dev, dev_info_t *dip,
	    char *name, int *data, uint_t nelements);

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

       int ddi_prop_update_int64_array(dev_t dev, dev_info_t *dip, char *name,
	    int64_t *data, uint_t nelements);

       int ddi_prop_update_int64(dev_t dev, dev_info_t *dip, char *name,
	    int64_t data);

       int ddi_prop_update_string_array(dev_t dev, dev_info_t *dip, char *name,
	    char **data, uint_t nelements);

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

       int ddi_prop_update_byte_array(dev_t dev, dev_info_t *dip, char *name,
	    uchar_t *data, uint_t nelements);

PARAMETERS
       dev	     Device number associated with the device.

       dip	     Pointer to the device info node of device whose  property
		     list should be updated.

       name	     String containing the name of the property to be updated.

       nelements     The number of elements contained in the memory pointed at
		     by data.

       ddi_prop_update_int_array()

       data	A pointer an integer array with which to update the property.

       ddi_prop_update_int()

       data	An integer value with which to update the property.

       ddi_prop_update_int64_array()

       data	An pointer to a 64-bit integer array with which to update  the
		property.

       ddi_prop_update_int64()

       data	A 64-bit integer value with which to update the property.

       ddi_prop_update_string_array()

       data	A pointer to a string array with which to update the property.
		The array of strings is formatted as an array of  pointers  to
		NULL  terminated  strings,  much  like	the  argv  argument to
		execve(2).

       ddi_prop_update_string()

       data	A pointer to a string value with which to update the property.

       ddi_prop_update_byte_array()

       data	A pointer to a byte array with which to update the property.

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

DESCRIPTION
       The property update routines search for and, if found, modify the value
       of  a  given  property.	Properties  are searched for based on the dip,
       name, dev, and the type of the data (integer,  string,  or  byte).  The
       driver  software properties list is searched. If the property is found,
       it is updated with the supplied value. If the property is not found  on
       this list, a new property is created with the value supplied. For exam‐
       ple, if a driver attempts to update  the	 "foo"	property,  a  property
       named  "foo" is searched for on the driver's software property list. If
       "foo" is found, the value is updated. If "foo"  is  not	found,	a  new
       property	 named "foo" is created on the driver's software property list
       with the supplied value even if a  "foo"	 property  exists  on  another
       property list (such as a PROM property list).

       Every property value has a data type associated with it: byte, integer,
       or string. A property should be updated using a function with the  same
       corresponding  data type as the property value. For example, an integer
       property must be updated using  either  ddi_prop_update_int_array()  or
       ddi_prop_update_int().	For   a	  64-bit   integer,   you   must   use
       ddi_prop_update_int64_array() or ddi_prop_update_int64().  Attempts  to
       update a property with a function that does not correspond to the prop‐
       erty data type that was used to	create	it  results  in	 an  undefined
       state.

       Usually,	 the  dev  argument  should be set to the actual device number
       that this property is associated with. If the property is  not  associ‐
       ated  with  any	particular dev, then the argument dev should be set to
       DDI_DEV_T_NONE. This property will then match a look  up	 request  (see
       ddi_prop_lookup(9F))  with the match_dev argument set to DDI_DEV_T_ANY.
       If no dev is available for the device (for  example  during  attach(9E)
       time),  one  can be created using makedevice(9F) with a major number of
       DDI_MAJOR_T_UNKNOWN. The update routines will then generate the correct
       dev when creating or updating the property.

       name must always be set to the name of the property being updated.

       For	    the		 routines	  ddi_prop_update_int_array(),
       ddi_prop_lookup_int64_array(),	       ddi_prop_update_string_array(),
       ddi_prop_update_string(),  and  ddi_prop_update_byte_array(), data is a
       pointer which points to memory containing the value of the property. In
       each  case  *data points to a different type of property value. See the
       individual descriptions of the routines below  for  details  concerning
       the  different  values. nelements is an unsigned integer which contains
       the number of integer, string, or byte elements accounted  for  in  the
       memory pointed at by *data.

       For  the	 routines  ddi_prop_update_int()  and ddi_prop_update_int64(),
       data is the new value of the property.

       ddi_prop_update_int_array()

       Updates or creates an array of integer property	values.	 An  array  of
       integers	 is  defined  to be nelements of 4 byte long integer elements.
       data must be a pointer to an integer array with	which  to  update  the
       property.

       ddi_prop_update_int()

       Update or creates a single integer value of a property. data must be an
       integer value with which to update the property.

       ddi_prop_update_int64_array()

       Updates or creates an array of 64-bit integer property values. An array
       of  integers  is	 defined  to be nelements of int64_t integer elements.
       data must be a pointer to a 64-bit integer array with which  to	update
       the property.

       ddi_prop_update_int64()

       Updates	or  creates  a single 64-bit integer value of a property. data
       must be an int64_t value with which to update the property.

       ddi_prop_update_string_array()

       Updates or creates a property that is an array of strings. data must be
       a  pointer  to  a  string  array with which to update the property. The
       array of strings is formatted as an array of pointers to NULLterminated
       strings, much like the argv argument to execve(2).

       ddi_prop_update_string()

       Updates	or creates a property that is a single string value. data must
       be a pointer to a string with which to update the property.

       ddi_prop_update_byte_array()

       Updates or creates a property that is an array of bytes. data should be
       a pointer to a byte array with which to update the property.

       The  property  update  routines	may block to allocate memory needed to
       hold the value of the property.

RETURN VALUES
       All of the property update routines return:

       DDI_PROP_SUCCESS		  On success.

       DDI_PROP_INVAL_ARG	  If an attempt is made to update  a  property
				  with	name  set  to  NULL or name set to the
				  null string.

       DDI_PROP_CANNOT_ENCODE	  If the  bytes	 of  the  property  cannot  be
				  encoded.

CONTEXT
       These functions can only be called from user or kernel context.

EXAMPLES
       Example 1 Updating Properties

       The	following      example	   demonstrates	    the	    use	    of
       ddi_prop_update_int_array().

	 int  options[4];

	      /*
	       * Create the "options" integer array with
	       * our default values for these parameters
	       */
	      options[0] = XX_OPTIONS0;
	      options[1] = XX_OPTIONS1;
	      options[2] = XX_OPTIONS2;
	      options[3] = XX_OPTIONS3;
	      i = ddi_prop_update_int_array(xx_dev, xx_dip, "options",
		   &options, sizeof (options) / sizeof (int));

SEE ALSO
       execve(2),   attach(9E),	  ddi_prop_lookup(9F),	  ddi_prop_remove(9F),
       makedevice(9F)

       Writing Device Drivers

SunOS 5.11			  28 Aug 2001		   ddi_prop_update(9F)
[top]

List of man pages available for OpenIndiana

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