|DI_PATH_CLIENT_NEXT_PATH(3DEVINFO)||Device Information Library Functions||DI_PATH_CLIENT_NEXT_PATH(3DEVINFO)|
cc [ flag... ] file... -ldevinfo [ library... ] #include <libdevinfo.h> di_path_t di_path_client_next_path(di_node_t node node, di_path_t path);
di_path_t di_path_phci_next_path(di_node_t node node, di_path_t path);
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.
The di_path_client_next_path() 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 NULL, di_path_client_next_path() returns the first path node associated with the client. To walk all path nodes associated with a client, returned di_path_t values are fed back into di_path_client_next_path(), via the path argument, until a null path node is returned. For each path node, di_path_bus_addr(3DEVINFO) returns the pHCI child path node unit-address.
The di_path_phci_next_path() function is called on a multipathing pHCI device node. If the path argument is NULL, di_path_phci_next_path() returns the first path node associated with the pHCI. To walk all path nodes associated with a pHCI, returned di_path_t values are fed back into di_path_phci_next_path(), via the path argument, until a null path node is returned. For each path node, di_path_client_node(3DEVINFO) provides a pointer to the associated client device node.
A device node can be a client device node of one multipathing class and a pHCI device node of another class.
Upon successful completion, a handle to the next path node is returned. Otherwise, DI_PATH_NIL is returned and errno is set to indicate the error.
These functions will fail if:
See attributes(7) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
di_init(3DEVINFO), di_path_bus_addr(3DEVINFO), di_path_client_node(3DEVINFO), libdevinfo(3LIB), attributes(7)
Writing Device Drivers
|May 15, 2008||OmniOS|