DI_BINDING_NAME(3DEVINFO) Device Information Library Functions
NAME
di_binding_name, di_bus_addr, di_compatible_names, di_devid,
di_driver_name, di_driver_ops, di_driver_major, 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_driver_major(
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 might 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_driver_major() function returns the major number associated
with the driver bound to
node. If there is no driver bound to the
node, this function returns -1.
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(7) for descriptions of the following attributes:
+--------------------+-----------------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------------------------+
|Interface Stability | Evolving (
di_devid() is obsolete) |
+--------------------+-----------------------------------+
|MT-Level | Safe |
+--------------------+-----------------------------------+
SEE ALSO
di_init(3DEVINFO),
di_prom_init(3DEVINFO),
di_prom_prop_data(3DEVINFO),
di_prom_prop_lookup_bytes(3DEVINFO),
libdevid(3LIB),
libdevinfo(3LIB),
attributes(7) Writing Device Drivers March 22, 2004 DI_BINDING_NAME(3DEVINFO)