di_walk_node(3DEVINFODevice Information Library Functiondi_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
current 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 │Evolving │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOdi_init(3DEVINFO), libdevinfo(3LIB), attributes(5)
Writing Device Drivers
SunOS 5.10 1 Dec 1998 di_walk_node(3DEVINFO)