|
Device Information Library Functions | di_walk_node(3DEVINFO) |
| 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)); |
|
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(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Evolving |
MT-Level | Safe |
|
| |