DI_WALK_NODE(3DEVINFO) Device Information Library Functions
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)