DI_WALK_NODE(3DEVINFO)DI_WALK_NODE(3DEVINFO)NAMEdi_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 cur‐
rent node.
DI_WALK_TERMINATE
Terminate the walk immediately.
ERRORS
The di_walk_node() function will fail if:
EINVAL
Invalid argument.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌────────────────────┬─────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├────────────────────┼─────────────────┤
│Interface Stability │ Committed │
├────────────────────┼─────────────────┤
│MT-Level │ Safe │
└────────────────────┴─────────────────┘
SEE ALSOdi_init(3DEVINFO), libdevinfo(3LIB), attributes(5)
Writing Device Drivers
Jan 16, 2009 DI_WALK_NODE(3DEVINFO)