User Tools

Site Tools


solaris:di_walk_node.3devinfo

di_walk_node


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:

SEE ALSO

di_init(3DEVINFO), libdevinfo(3LIB), attributes(7)

Writing Device Drivers in Oracle Solaris 11.4


solaris/di_walk_node.3devinfo.txt · Last modified: 2023/07/19 08:57 by A User Not Logged in