DI_BINDING_NAME(3DEVINFO)DI_BINDING_NAME(3DEVINFO)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 snap‐
shot. 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 regis‐
tered. Otherwise, a null pointer is returned. Interfaces in the libde‐
vid(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. Pos‐
sible 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 prop‐
erties 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 TYPE │ ATTRIBUTE VALUE │
├────────────────────┼───────────────────────────────────┤
│Interface Stability │ Evolving (di_devid() is obsolete) │
├────────────────────┼───────────────────────────────────┤
│MT-Level │ Safe │
└────────────────────┴───────────────────────────────────┘
SEE ALSOdi_init(3DEVINFO), di_prom_init(3DEVINFO), di_prom_prop_data(3DEVINFO),
di_prom_prop_lookup_bytes(3DEVINFO), libdevid(3LIB), libdevinfo(3LIB),
attributes(5)
Writing Device Drivers
Mar 22, 2004 DI_BINDING_NAME(3DEVINFO)