NAME | SYNOPSIS | DESCRIPTION | PARAMETERS | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO
#include <libdevinfo.h>di_node_t di_child_node(di_node_t node);
The kernel device configuration data may be viewed in two ways, either as a tree of device configuration nodes or as a list of nodes associated with each driver. In the tree view, each node may contain references to its parent, the next sibling in a list of siblings, and the first child of a list of children. In the per-driver view, each node contains a reference to the next node associated with the same driver.
Both views are captured in the snapshot, and the interfaces are provided for node access.
di_child_node() obtains a handle to the first child of node. DI_NODE_NIL is returned and errno is set to ENXIO or ENOTSUP, if no child node exists in the snapshot.
di_parent_node() obtains a handle to the parent node of node. DI_NODE_NIL is returned and errno is set to ENXIO or ENOTSUP, if no parent node exists in the snapshot.
di_sibling_node() obtains a handle to the next sibling node of node. A DI_NODE_NIL is returned and errno is set to ENXIO or ENOTSUP, if no next sibling node exists in the snapshot.
di_drv_first_node() obtains a handle to the first node associated with the driver specified by drv_name. If there is no such driver, DI_NODE_NIL is returned with errno is set to EINVAL. If the driver exists, but there is no node associated with this driver, DI_NODE_NIL is returned and errno is set to ENXIO or ENOTSUP.
di_drv_next_node() returns a handle to the next node bound to the same driver. DI_NODE_NIL is returned if no more nodes exist.
The following parameter descriptions apply to di_child_node(), di_drv_next_node(), di_parent_node(), and di_sibling_node():
A handle to any node in the snapshot.
The following parameter descriptions apply to di_drv_first_node():
The name of the driver of interest.
The handle of the root node for the snapshot returned by di_init().
Upon successful completion, a handle is returned. Otherwise, DI_NODE_NIL is returned and errno is set to indicate the error.
These functions set errno as listed for the following conditions:
The argument is invalid.
The requested node does not exist.
The node was not found in the snapshot, but it may exist in the kernel. This error may occur if the snapshot contains a partial device tree.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
MT Level | Safe |
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | PARAMETERS | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO