1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright (c) 2013, Joyent, Inc. All rights reserved.
25 */
26
27 #ifndef _TOPO_HC_H
28 #define _TOPO_HC_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 /*
35 * Allowable hardware component names for hc FMRIs
36 */
37 #define BANK "bank"
38 #define BAY "bay"
39 #define BLADE "blade"
40 #define BRANCH "branch"
41 #define CMP "CMP"
42 #define CENTERPLANE "centerplane"
43 #define CHASSIS "chassis"
44 #define CHIP "chip"
45 #define CORE "core"
46 #define STRAND "strand"
47 #define CHIP_SELECT "chip-select"
48 #define CONTROLLER "controller"
49 #define CPU "cpu"
50 #define CPUBOARD "cpuboard"
51 #define DIMM "dimm"
52 #define DISK "disk"
53 #define DRAM "dram"
54 #define DRAMCHANNEL "dram-channel"
55 #define FAN "fan"
56 #define FANBOARD "fanboard"
57 #define FANMODULE "fanmodule"
58 #define HBA "hba"
59 #define HOSTBRIDGE "hostbridge"
60 #define INTERCONNECT "interconnect"
61 #define IOBOARD "ioboard"
62 #define IPORT "iport"
63 #define MEMBOARD "memboard"
64 #define MEMORYBUFFER "memory-buffer"
65 #define MEMORYCONTROL "memory-controller"
66 #define MICROCORE "micro-core"
67 #define MOTHERBOARD "motherboard"
68 #define NIU "niu"
69 #define NIUFN "niufn"
70 #define PCI_BUS "pcibus"
71 #define PCI_DEVICE "pcidev"
72 #define PCI_FUNCTION "pcifn"
73 #define PCIEX_BUS "pciexbus"
74 #define PCIEX_DEVICE "pciexdev"
75 #define PCIEX_FUNCTION "pciexfn"
76 #define PCIEX_ROOT "pciexrc"
77 #define PCIEX_SWUP "pciexswu"
78 #define PCIEX_SWDWN "pciexswd"
79 #define POWERBOARD "powerboard"
80 #define POWERMODULE "powermodule"
81 #define PSU "psu"
82 #define RANK "rank"
83 #define RECEPTACLE "receptacle"
84 #define RISER "riser"
85 #define SASEXPANDER "sas-expander"
86 #define SHELF "shelf"
87 #define SCSI_DEVICE "scsi-device"
88 #define SES_ENCLOSURE "ses-enclosure"
89 #define SMP_DEVICE "smp-device"
90 #define SP "sp"
91 #define SUBCHASSIS "subchassis"
92 #define SYSTEMBOARD "systemboard"
93 #define XAUI "xaui"
94 #define XFP "xfp"
95
96 /*
97 * Allowable hc node property group and property names
98 */
99 #define TOPO_PGROUP_IO "io"
100 #define TOPO_IO_DEVTYPE "devtype"
101 #define TOPO_IO_DRIVER "driver"
102 #define TOPO_IO_MODULE "module"
103 #define TOPO_IO_DEV "dev"
104 #define TOPO_IO_DEVID "devid"
105 #define TOPO_IO_DEV_PATH "devfs-path"
106 #define TOPO_IO_AP_PATH "ap-path"
107 #define TOPO_IO_PHYS_PATH "phys-path"
108
109 #define TOPO_PGROUP_PCI "pci"
110 #define TOPO_PCI_VENDID "vendor-id"
111 #define TOPO_PCI_DEVID "device-id"
112 #define TOPO_PCI_EXCAP "extended-capabilities"
113 #define TOPO_PCI_BDF "BDF"
114 #define TOPO_PCI_CLASS "class-code"
115 #define TOPO_PCI_AADDR "assigned-addresses"
116
117 #define TOPO_PGROUP_BINDING "binding"
118 #define TOPO_BINDING_OCCUPANT "occupant-path"
119 #define TOPO_BINDING_DRIVER "driver"
120 #define TOPO_BINDING_DEVCTL "devctl"
121 #define TOPO_BINDING_ENCLOSURE "enclosure"
122 #define TOPO_BINDING_SLOT "slot"
123
124 #define TOPO_PGROUP_STORAGE "storage"
125 #define TOPO_STORAGE_INITIATOR_PORT "initiator-port"
126 #define TOPO_STORAGE_INITIATOR_PORT_PM "initiator-port-pm"
127 #define TOPO_STORAGE_TARGET_PORT "target-port"
128 #define TOPO_STORAGE_TARGET_PORT_L0ID "target-port-l0id"
129 #define TOPO_STORAGE_TARGET_PORT_L0IDS "target-port-l0ids"
130 #define TOPO_STORAGE_ATTACHED_PORT "attached-port"
131 #define TOPO_STORAGE_TARGET_PORT_PM "target-port-pm"
132 #define TOPO_STORAGE_ATTACHED_PORT_PM "attached-port-pm"
133 #define TOPO_STORAGE_DEVID "devid"
134 #define TOPO_STORAGE_LUN64 "lun64"
135 #define TOPO_STORAGE_DEVICE_TYPE "inquiry-device-type"
136 #define TOPO_STORAGE_MANUFACTURER "manufacturer"
137 #define TOPO_STORAGE_MODEL "model"
138 #define TOPO_STORAGE_FIRMWARE_REV "firmware-revision"
139 #define TOPO_STORAGE_SAS_PHY_MASK "receptacle-pm"
140 #define TOPO_STORAGE_SAS_CONNECTOR_TYPE "sas-connector-type"
141
142 #define TOPO_PGROUP_SES "ses"
143 /* Applied any SES standard related topo node. */
144 #define TOPO_PROP_NODE_ID "node-id"
145 #define TOPO_PROP_TARGET_PATH "target-path"
146 #define TOPO_PROP_SES_DEVID "ses-devid"
147 #define TOPO_PROP_SES_DEV_PATH "ses-devfs-path"
148 #define TOPO_PROP_SES_PHYS_PATH "ses-phys-path"
149 #define TOPO_PROP_SES_TARGET_PORT "ses-target-port"
150
151 #define TOPO_PGROUP_SMP "smp"
152 /* host SMP target related info for an expander node. */
153 #define TOPO_PROP_SMP_DEVID "smp-devid"
154 #define TOPO_PROP_SMP_DEV_PATH "smp-devfs-path"
155 #define TOPO_PROP_SMP_PHYS_PATH "smp-phys-path"
156 #define TOPO_PROP_SMP_TARGET_PORT "smp-target-port"
157 #define TOPO_PROP_SAS_ADDR "sas-address"
158 #define TOPO_PROP_PHY_COUNT "phy-count"
159 #define TOPO_PROP_PATHS "paths"
160 #define TOPO_PROP_CHASSIS_TYPE "chassis-type"
161 #define TOPO_PROP_SAS_PHY_MASK "phy-mask"
162 #define TOPO_PROP_SAS_CONNECTOR_TYPE "sas-connector-type"
163
164 #ifdef __cplusplus
165 }
166 #endif
167
168 #endif /* _TOPO_HC_H */