1di_path_client_next_paDtehv(i3cDeEVIInNfFoOr)mation Libradriy_pFautnhc_tciloinesnt_next_path(3DEVINFO)
2
3
4
6 di_path_client_next_path, di_path_phci_next_path - libdevinfo path node
7 traversal functions
8
10 cc [ flag... ] file... -ldevinfo [ library... ]
11 #include <libdevinfo.h>
12
13 di_path_t di_path_client_next_path(di_node_t node node,
14 di_path_t path);
15
16
17 di_path_t di_path_phci_next_path(di_node_t node node,
18 di_path_t path);
19
20
22 node The handle to a device node in a di_init(3DEVINFO) snapshot.
23 For di_path_client_next_path(), node must be a client device
24 node. For di_path_phci_next_path(), node must be a pHCI device
25 node.
26
27
28 path DI_PATH_NIL, or the handle to a path node in a snapshot.
29
30
32 Each path node is an element in a pHCI-client matrix. The matrix is
33 implemented by dual linked lists: one list links path nodes related to
34 a common client head, and the other links path nodes related to a com‐
35 mon pHCI head.
36
37
38 The di_path_client_next_path() function is called on a multipathing
39 'client' device node, where a 'client' is the child of a vHCI device
40 node, and is associated with a specific endpoint device identity (inde‐
41 pendent of physical paths). If the path argument is NULL,
42 di_path_client_next_path() returns the first path node associated with
43 the client. To walk all path nodes associated with a client, returned
44 di_path_t values are fed back into di_path_client_next_path(), via the
45 path argument, until a null path node is returned. For each path node,
46 di_path_bus_addr(3DEVINFO) returns the pHCI child path node unit-
47 address.
48
49
50 The di_path_phci_next_path() function is called on a multipathing pHCI
51 device node. If the path argument is NULL, di_path_phci_next_path()
52 returns the first path node associated with the pHCI. To walk all path
53 nodes associated with a pHCI, returned di_path_t values are fed back
54 into di_path_phci_next_path(), via the path argument, until a null path
55 node is returned. For each path node, di_path_client_node(3DEVINFO)
56 provides a pointer to the associated client device node.
57
58
59 A device node can be a client device node of one multipathing class and
60 a pHCI device node of another class.
61
63 Upon successful completion, a handle to the next path node is returned.
64 Otherwise, DI_PATH_NIL is returned and errno is set to indicate the
65 error.
66
68 These functions will fail if:
69
70 EINVAL One or more argument was invalid.
71
72
73 ENOTSUP Path node information is not available in the snapshot.
74
75
76 ENXIO The end of the path node list was reached.
77
78
80 See attributes(5) for descriptions of the following attributes:
81
82
83
84
85 ┌─────────────────────────────┬─────────────────────────────┐
86 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
87 ├─────────────────────────────┼─────────────────────────────┤
88 │Interface Stability │Committed │
89 ├─────────────────────────────┼─────────────────────────────┤
90 │MT-Level │Safe │
91 └─────────────────────────────┴─────────────────────────────┘
92
94 di_init(3DEVINFO), di_path_bus_addr(3DEVINFO),
95 di_path_client_node(3DEVINFO), libdevinfo(3LIB), attributes(5)
96
97
98 Writing Device Drivers
99
100
101
102SunOS 5.11 15 May 2008di_path_client_next_path(3DEVINFO)