User Tools

Site Tools


solaris:di_walk_minor.3devinfo

di_walk_minor


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 Solaris 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:

SEE ALSO

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

Writing Device Drivers in Oracle Solaris 11.4

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. Solaris 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.


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