| Current File : //usr/share/man/man3devinfo/di_path_client_next_path.3devinfo |
'\" te
.\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
.TH di_path_client_next_path 3DEVINFO "15 May 2008" "SunOS 5.11" "Device Information Library Functions"
.SH NAME
di_path_client_next_path, di_path_phci_next_path \- libdevinfo path node traversal functions
.SH SYNOPSIS
.LP
.nf
\fBcc\fR [ \fIflag\fR... ] \fIfile\fR... \fB-ldevinfo\fR [ \fIlibrary\fR... ]
#include <libdevinfo.h>
\fBdi_path_t\fR \fBdi_path_client_next_path\fR(\fBdi_node_t node\fR \fInode\fR,
\fBdi_path_t\fR \fIpath\fR);
.fi
.LP
.nf
\fBdi_path_t\fR \fBdi_path_phci_next_path\fR(\fBdi_node_t node\fR \fInode\fR,
\fBdi_path_t\fR \fIpath\fR);
.fi
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fInode\fR\fR
.ad
.RS 8n
.rt
The handle to a device node in a \fBdi_init\fR(3DEVINFO) snapshot. For \fBdi_path_client_next_path()\fR, \fInode\fR must be a client device node. For \fBdi_path_phci_next_path()\fR, \fInode\fR must be a pHCI device node.
.RE
.sp
.ne 2
.mk
.na
\fB\fIpath\fR\fR
.ad
.RS 8n
.rt
\fBDI_PATH_NIL\fR, or the handle to a path node in a snapshot.
.RE
.SH DESCRIPTION
.sp
.LP
Each path node is an element in a pHCI-client matrix. The matrix is implemented by dual linked lists: one list links path nodes related to a common client head, and the other links path nodes related to a common pHCI head.
.sp
.LP
The \fBdi_path_client_next_path()\fR function is called on a multipathing 'client' device node, where a 'client' is the child of a vHCI device node, and is associated with a specific endpoint device identity (independent of physical paths). If the path argument is \fINULL\fR, \fBdi_path_client_next_path()\fR returns the first path node associated with the client. To walk all path nodes associated with a client, returned \fBdi_path_t\fR values are fed back into \fBdi_path_client_next_path()\fR, via the \fIpath\fR argument, until a null path node is returned. For each path node, \fBdi_path_bus_addr\fR(3DEVINFO) returns the pHCI child path node unit-address.
.sp
.LP
The \fBdi_path_phci_next_path()\fR function is called on a multipathing pHCI device node. If the path argument is \fINULL\fR, \fBdi_path_phci_next_path()\fR returns the first path node associated with the pHCI. To walk all path nodes associated with a pHCI, returned \fBdi_path_t\fR values are fed back into \fBdi_path_phci_next_path()\fR, via the \fIpath\fR argument, until a null path node is returned. For each path node, \fBdi_path_client_node\fR(3DEVINFO) provides a pointer to the associated client device node.
.sp
.LP
A device node can be a client device node of one multipathing class and a pHCI device node of another class.
.SH RETURN VALUES
.sp
.LP
Upon successful completion, a handle to the next path node is returned. Otherwise, \fBDI_PATH_NIL\fR is returned and \fBerrno\fR is set to indicate the error.
.SH ERRORS
.sp
.LP
These functions will fail if:
.sp
.ne 2
.mk
.na
\fB\fBEINVAL\fR\fR
.ad
.RS 11n
.rt
One or more argument was invalid.
.RE
.sp
.ne 2
.mk
.na
\fB\fBENOTSUP\fR\fR
.ad
.RS 11n
.rt
Path node information is not available in the snapshot.
.RE
.sp
.ne 2
.mk
.na
\fB\fBENXIO\fR\fR
.ad
.RS 11n
.rt
The end of the path node list was reached.
.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
\fBdi_init\fR(3DEVINFO), \fBdi_path_bus_addr\fR(3DEVINFO), \fBdi_path_client_node\fR(3DEVINFO), \fBlibdevinfo\fR(3LIB), \fBattributes\fR(5)
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR