Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Device Information Library Functionsdi_binding_name(3DEVINFO)


NAME

 di_binding_name, di_bus_addr, di_compatible_names, di_devid, di_driver_name, di_driver_ops, di_instance, di_nodeid, di_node_name - return libdevinfo node information

SYNOPSIS

 
cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>
char *di_binding_name(di_node_t node);
 char *di_bus_addr(di_node_t node);
 int di_compatible_names(di_node_t node, char **names);
 ddi_devid_t di_devid(di_node_t node);
 char *di_driver_name(di_node_t node);
 uint_t di_driver_ops(di_node_t node);
 int di_instance(di_node_t node);
 int di_nodeid(di_node_t node);
 char *di_node_name(di_node_t node);

PARAMETERS

 
names
The address of a pointer.
node
A handle to a device node.

DESCRIPTION

 

These functions extract information associated with a device node.

RETURN VALUES

 

The di_binding_name() function returns a pointer to the binding name. The binding name is the name used by the system to select a driver for the device.

The di_bus_addr() function returns a pointer to a null-terminated string containing the assigned bus address for the device. NULL is returned if a bus address has not been assigned to the device. A zero-length string may be returned and is considered a valid bus address.

The return value of di_compatible_names() is the number of compatible names. names is updated to point to a buffer contained within the snapshot. The buffer contains a concatenation of null-terminated strings, for example:

 
<name1>/0<name2>/0...<namen>/0

See the discussion of generic names in Writing Device Drivers for a description of how compatible names are used by Solaris to achieve driver binding for the node.

The di_devid() function returns the device ID for node, if it is registered. Otherwise, a null pointer is returned. Interfaces in the libdevid(3LIB) library may be used to manipulate the handle to the device id.

This function is obsolete and may be removed from a future Solaris release. Applications should use the "devid" property instead.

The di_driver_name() function returns the name of the driver bound to the node. A null pointer is returned if node is not bound to any driver.

The di_driver_ops() function returns a bit array of device driver entry points that are supported by the driver bound to this node. Possible bit fields supported by the driver are DI_CB_OPS, DI_BUS_OPS, DI_STREAM_OPS.

The di_instance() function returns the instance number of the device. A value of -1 indicates an instance number has not been assigned to the device by the system.

The di_nodeid() function returns the type of device, which may be one of the following possible values: DI_PSEUDO_NODEID, DI_PROM_NODEID, and DI_SID_NODEID. Devices of type DI_PROM_NODEID may have additional properties that are defined by the PROM. See di_prom_prop_data(3DEVINFO) and di_prom_prop_lookup_bytes(3DEVINFO).

The di_node_name() function returns a pointer to a null-terminated string containing the node name.

EXAMPLES

 

See di_init(3DEVINFO) for an example demonstrating typical use of these functions.

ATTRIBUTES

 

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Interface StabilityEvolving (di_devid is obsolete)
MT-LevelSafe

SEE ALSO

 

di_init(3DEVINFO), di_prom_init(3DEVINFO), di_prom_prop_data(3DEVINFO), di_prom_prop_lookup_bytes(3DEVINFO), libdevid(3LIB), libdevinfo(3DEVINFO), attributes(5)

Writing Device Drivers


SunOS 5.9Go To TopLast Changed 8 Nov 2000

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.