[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    ddi_prop_exists(9F) manual page Table of Contents

Name

ddi_prop_exists - check for the existence of a property

Synopsis


#include <sys/ddi.h>

#include <sys/sunddi.h>

int ddi_prop_exists(dev_t match_dev, dev_info_t *dip, u_int flags, char *name);

Interface Level

Solaris DDI specific (Solaris DDI).

Arguments

match_dev
Device number associated with property or DDI_DEV_T_ANY.
dip
Pointer to the device info node of device whose property list should be searched.
flags
Possible flag values are some combination of:
DDI_PROP_DONTPASS
Do not pass request to parent device information node if the property is not found.
DDI_PROP_NOTPROM
Do not look at PROM properties (ignored on platforms that do not support PROM properties).
name
String containing the name of the property.

Description

ddi_prop_exists() checks for the existence of a property regardless of the property value data type.

Properties are searched for based on the dip, name, and match_dev. The property search order is as follows:

    .
  1. Search software properties created by the driver.
  2. .
  3. Search the software properties created by the system (or nexus nodes in the device info tree).
  4. .
  5. Search the driver global properties list.
  6. .
  7. If DDI_PROP_NOTPROM is not set, search the PROM properties (if they exist).
  8. .
  9. If DDI_PROP_DONTPASS is not set, pass this request to the parent device information node.
  10. .
  11. Return 0 if not found and 1 if found.

Usually, the match_dev argument should be set to the actual device number that this property is associated with. However, if the match_dev argument is DDI_DEV_T_ANY, then ddi_prop_exists() will match the request regardless of the match_dev the property was created with. That is the first property whose name matches name will be returned. If a property was created with match_dev set to DDI_DEV_T_NONE then the only way to look up this property is with a match_dev set to DDI_DEV_T_ANY. PROM properties are always created with match_dev set to DDI_DEV_T_NONE.

name must always be set to the name of the property being looked up.

Return Values

ddi_prop_exists() returns 1 if the property exists and 0 otherwise.

Context

These functions can be called from user or kernel context.

Examples

The following example demonstrates the use of ddi_prop_exists().


    /*
     * Enable "whizzy" mode if the "whizzy-mode" property exists
     */
    if (ddi_prop_exists(xx_dev, xx_dip, DDI_PROP_NOTPROM,
            "whizzy-mode") == 1) {
        xx_enable_whizzy_mode(xx_dip);
    } else {
        xx_disable_whizzy_mode(xx_dip);
    }

See Also

ddi_prop_get_int(9F) , ddi_prop_lookup(9F) , ddi_prop_remove(9F) , ddi_prop_update(9F)


Table of Contents