DI_WALK_NODE(3DEVINFO) Device Information Library Functions
di_walk_node - traverse libdevinfo device nodes
cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>
int di_walk_node(di_node_t root, uint_t flag, void *arg,
int (*node_callback)(di_node_t node, void *arg));
The di_walk_node() function visits all nodes in the subtree rooted at
root. For each node found, the caller-supplied function
node_callback() is invoked. The return value of node_callback()
specifies subsequent walking behavior.
arg
Pointer to caller-specific data.
flag
Specifies walking order, either DI_WALK_CLDFIRST (depth
first) or DI_WALK_SIBFIRST (breadth first). DI_WALK_CLDFIRST
is the default.
node
The node being visited.
root
The handle to the root node of the subtree to visit.
Upon successful completion, di_walk_node() returns 0. Otherwise, -1
is returned and errno is set to indicate the error.
The node_callback() function can return one of the following:
DI_WALK_CONTINUE
Continue walking.
DI_WALK_PRUNESIB
Continue walking, but skip siblings and their
child nodes.
DI_WALK_PRUNECHILD
Continue walking, but skip subtree rooted at
current node.
DI_WALK_TERMINATE
Terminate the walk immediately.
The di_walk_node() function will fail if:
EINVAL
Invalid argument.
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
di_init(3DEVINFO), libdevinfo(3LIB), attributes(7)
Writing Device Drivers
January 16, 2009 DI_WALK_NODE(3DEVINFO)
NAME
di_walk_node - traverse libdevinfo device nodes
SYNOPSIS
cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>
int di_walk_node(di_node_t root, uint_t flag, void *arg,
int (*node_callback)(di_node_t node, void *arg));
DESCRIPTION
The di_walk_node() function visits all nodes in the subtree rooted at
root. For each node found, the caller-supplied function
node_callback() is invoked. The return value of node_callback()
specifies subsequent walking behavior.
PARAMETERS
arg
Pointer to caller-specific data.
flag
Specifies walking order, either DI_WALK_CLDFIRST (depth
first) or DI_WALK_SIBFIRST (breadth first). DI_WALK_CLDFIRST
is the default.
node
The node being visited.
root
The handle to the root node of the subtree to visit.
RETURN VALUES
Upon successful completion, di_walk_node() returns 0. Otherwise, -1
is returned and errno is set to indicate the error.
The node_callback() function can return one of the following:
DI_WALK_CONTINUE
Continue walking.
DI_WALK_PRUNESIB
Continue walking, but skip siblings and their
child nodes.
DI_WALK_PRUNECHILD
Continue walking, but skip subtree rooted at
current node.
DI_WALK_TERMINATE
Terminate the walk immediately.
ERRORS
The di_walk_node() function will fail if:
EINVAL
Invalid argument.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
di_init(3DEVINFO), libdevinfo(3LIB), attributes(7)
Writing Device Drivers
January 16, 2009 DI_WALK_NODE(3DEVINFO)