| Current File : //usr/man/man3devinfo/di_walk_minor.3devinfo |
'\" te
.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
.TH di_walk_minor 3DEVINFO "14 Jan 2009" "SunOS 5.11" "Device Information Library Functions"
.SH NAME
di_walk_minor \- traverse libdevinfo minor nodes
.SH SYNOPSIS
.LP
.nf
\fBcc\fR [ \fIflag\fR... ] \fIfile\fR... \fB-ldevinfo\fR [ \fIlibrary\fR... ]
#include <libdevinfo.h>
\fBint\fR \fBdi_walk_minor\fR(\fBdi_node_t\fR \fIroot\fR, \fBconst char *\fR\fIminor_nodetype\fR,
\fBuint_t\fR \fIflag\fR, \fBvoid *\fR\fIarg\fR, \fBint\fR (\fI*minor_callback\fR)(di_node_t \fInode\fR,
di_minor_t \fIminor\fR, void *\fIarg\fR));
.fi
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIarg\fR\fR
.ad
.RS 18n
.rt
Pointer to caller- specific user data.
.RE
.sp
.ne 2
.mk
.na
\fB\fIflag\fR\fR
.ad
.RS 18n
.rt
Specify 0. Reserved for future use.
.RE
.sp
.ne 2
.mk
.na
\fB\fIminor\fR\fR
.ad
.RS 18n
.rt
The minor node visited.
.RE
.sp
.ne 2
.mk
.na
\fB\fIminor_nodetype\fR\fR
.ad
.RS 18n
.rt
A character string specifying the minor data type, which may be one of the types defined by the Solaris DDI framework, for example, \fBDDI_NT_BLOCK\fR. \fBNULL\fR matches all \fIminor_node\fR types. See \fBddi_create_minor_node\fR(9F).
.RE
.sp
.ne 2
.mk
.na
\fB\fInode\fR\fR
.ad
.RS 18n
.rt
The device node with which to the minor node is associated.
.RE
.sp
.ne 2
.mk
.na
\fB\fIroot\fR\fR
.ad
.RS 18n
.rt
Root of subtree to visit.
.RE
.SH DESCRIPTION
.sp
.LP
The \fBdi_walk_minor()\fR function visits all minor nodes attached to device nodes in a subtree rooted at \fIroot\fR. For each minor node that matches \fIminor_nodetype\fR, the caller-supplied function \fIminor_callback\fR() is invoked. The walk terminates immediately when \fIminor_callback\fR() returns \fBDI_WALK_TERMINATE\fR.
.SH RETURN VALUES
.sp
.LP
Upon successful completion, \fBdi_walk_minor()\fR returns 0. Otherwise, -1 is returned and errno is set to indicate the error.
.sp
.LP
The \fBminor_callback()\fR function returns one of the following:
.sp
.ne 2
.mk
.na
\fB\fBDI_WALK_CONTINUE\fR\fR
.ad
.RS 21n
.rt
Continue to visit subsequent minor data nodes.
.RE
.sp
.ne 2
.mk
.na
\fB\fBDI_WALK_TERMINATE\fR\fR
.ad
.RS 21n
.rt
Terminate the walk immediately.
.RE
.SH ERRORS
.sp
.LP
The \fBdi_walk_minor()\fR function will fail if:
.sp
.ne 2
.mk
.na
\fB\fBEINVAL\fR\fR
.ad
.RS 10n
.rt
Invalid argument.
.RE
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Interface StabilityCommitted
_
MT-LevelSafe
.TE
.SH SEE ALSO
.sp
.LP
\fBdladm\fR(1M), \fBdi_minor_nodetype\fR(3DEVINFO), dlpi_walk(3DLPI), \fBlibdevinfo\fR(3LIB), \fBattributes\fR(5), \fBfilesystem\fR(5), \fBddi_create_minor_node\fR(9F)
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR
.SH NOTES
.sp
.LP
The \fBdi_walk_minor()\fR function is no longer an accurate method for walking network datalink interfaces on the system. Applications should use \fBdlpi_walk\fR(3DLPI) instead. It has been common for applications to use \fBdi_walk_minor()\fR to walk networking devices by passing in a \fBminor_nodetype\fR of \fBDDI_NT_NET\fR, 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 \fBDEVICE\fR field by \fBdladm\fR \fBshow-phys\fR) and network datalink interfaces (the objects displayed by \fBdladm\fR \fBshow-link\fR). Datalink interfaces are represented as the set of DLPI device nodes that applications can open by using \fBdlpi_open\fR(3DLPI) or by opening DLPI nodes out of the \fB/dev/net\fR filesystem (see \fBfilesystem\fR(5)). The \fBdlpi_walk\fR(3DLPI) function is the proper function to walk these nodes.