DI_WALK_LINK(3DEVINFO) Device Information Library Functions DI_WALK_LINK(3DEVINFO)

di_walk_link - traverse libdevinfo links

cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>
int di_walk_link(di_node_t root, uint_t flag, uint_t endpoint, void *arg,
     int (*link_callback)(di_link_t link, void *arg));

root
The handle to the root node of the subtree to visit.

flag

Specify 0. Reserved for future use.

endpoint

Specify if the current node being visited should be the target or source of an link, either DI_LINK_TGT or DI_LINK_SRC

arg

A pointer to caller-specific data.

link_callback

The caller-supplied callback function.

The di_walk_link() function visits all nodes in the subtree rooted at root. For each node found, the caller-supplied function link_callback() is invoked for each link associated with that node where that node is the specified endpoint of the link. The return value of link_callback() specifies subsequent walking behavior. See RETURN VALUES.

Upon successful completion, di_walk_link() returns 0. Otherwise, -1 is returned and errno is set to indicate the error.

The callback function, link_callback(), can return one of the following:

DI_WALK_CONTINUE

Continue walking.

DI_WALK_TERMINATE

Terminate the walk immediately.

The di_walk_link() function will fail if:

EINVAL

An argument is invalid.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Evolving
MT-Level Safe

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

March 22, 2004 OmniOS