DI_WALK_MINOR(3DEVINFO) Device Information Library Functions

NAME


di_walk_minor - traverse libdevinfo minor nodes

SYNOPSIS


cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>

int di_walk_minor(di_node_t root, const char *minor_nodetype,
uint_t flag, void *arg, int (*minor_callback)(di_node_t node,
di_minor_t minor, void *arg));


PARAMETERS


arg
Pointer to caller- specific user data.


flag
Specify 0. Reserved for future use.


minor
The minor node visited.


minor_nodetype
A character string specifying the minor data type,
which may be one of the types defined by the
illumos DDI framework, for example, DDI_NT_BLOCK.
NULL matches all minor_node types. See
ddi_create_minor_node(9F).


node
The device node with which to the minor node is
associated.


root
Root of subtree to visit.


DESCRIPTION


The di_walk_minor() function visits all minor nodes attached to
device nodes in a subtree rooted at root. For each minor node that
matches minor_nodetype, the caller-supplied function minor_callback()
is invoked. The walk terminates immediately when minor_callback()
returns DI_WALK_TERMINATE.

RETURN VALUES


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


The minor_callback() function returns one of the following:

DI_WALK_CONTINUE
Continue to visit subsequent minor data nodes.


DI_WALK_TERMINATE
Terminate the walk immediately.


ERRORS


The di_walk_minor() function will fail if:

EINVAL
Invalid argument.


ATTRIBUTES


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


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+

SEE ALSO


dladm(8), di_minor_nodetype(3DEVINFO), dlpi_walk(3DLPI),
libdevinfo(3LIB), attributes(7), filesystem(7),
ddi_create_minor_node(9F)


Writing Device Drivers

NOTES


The di_walk_minor() function is no longer an accurate method for
walking network datalink interfaces on the system. Applications
should use dlpi_walk(3DLPI) instead. It has been common for
applications to use di_walk_minor() to walk networking devices by
passing in a minor_nodetype of DDI_NT_NET, in most cases to discover
the set of DLPI devices on the system. illumos now makes a layering
distinction between networking devices (the objects displayed in the
DEVICE field by dladm show-phys) and network datalink interfaces (the
objects displayed by dladm show-link). Datalink interfaces are
represented as the set of DLPI device nodes that applications can
open by using dlpi_open(3DLPI) or by opening DLPI nodes out of the
/dev/net filesystem (see filesystem(7)). The dlpi_walk(3DLPI)
function is the proper function to walk these nodes.

January 14, 2009 DI_WALK_MINOR(3DEVINFO)

tribblix@gmail.com :: GitHub :: Privacy