0eb822a1c0c2bea495647510b75f77f0e57633ebcindi/*
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * CDDL HEADER START
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi *
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * The contents of this file are subject to the terms of the
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * Common Development and Distribution License (the "License").
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * You may not use this file except in compliance with the License.
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi *
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * or http://www.opensolaris.org/os/licensing.
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * See the License for the specific language governing permissions
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * and limitations under the License.
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi *
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * When distributing Covered Code, include this CDDL HEADER in each
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * If applicable, add the following below this CDDL HEADER, with the
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * fields enclosed by brackets "[]" replaced with your own identifying
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * information: Portions Copyright [yyyy] [name of copyright owner]
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi *
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * CDDL HEADER END
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi */
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi/*
44ed9dbbfa620821ecf59a131462082f628dd0f3Stephen Hanson * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
aed5247ff899ec457005d93dfbdb4ffd74574695Joshua M. Clulow * Copyright (c) 2013, Joyent, Inc. All rights reserved.
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi */
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#ifndef _TOPO_HC_H
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define _TOPO_HC_H
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#ifdef __cplusplus
0eb822a1c0c2bea495647510b75f77f0e57633ebcindiextern "C" {
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#endif
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi/*
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * Allowable hardware component names for hc FMRIs
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi */
908f1e1388f616898b4e515d343c0414f2a6472esd#define BANK "bank"
184cd04c26b064536977dfbb913a1240eaf6f708cth#define BAY "bay"
908f1e1388f616898b4e515d343c0414f2a6472esd#define BLADE "blade"
14ea4bb737263733ad80a36b4f73f681c30a6b45sd#define BRANCH "branch"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define CMP "CMP"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define CENTERPLANE "centerplane"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define CHASSIS "chassis"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define CHIP "chip"
908f1e1388f616898b4e515d343c0414f2a6472esd#define CORE "core"
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost#define STRAND "strand"
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost#define CHIP_SELECT "chip-select"
940d71d237794874e18a0eb72f6564821a823517eschrock#define CONTROLLER "controller"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define CPU "cpu"
13faa91230bde46da937bf33010b9accc5bdeb59sd#define CPUBOARD "cpuboard"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define DIMM "dimm"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define DISK "disk"
908f1e1388f616898b4e515d343c0414f2a6472esd#define DRAM "dram"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define DRAMCHANNEL "dram-channel"
2eeaed14a5e2ed9bd811643ad5bffc3510ca0310robj#define FAN "fan"
ded9341448cd6e2573619c7f6fe98909bdd35ec6Hyon Kim#define FANBOARD "fanboard"
2eeaed14a5e2ed9bd811643ad5bffc3510ca0310robj#define FANMODULE "fanmodule"
fc33347812f84907261f6fd501e2409da108b8d8Tom Pothier#define HBA "hba"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define HOSTBRIDGE "hostbridge"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define INTERCONNECT "interconnect"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define IOBOARD "ioboard"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define IPORT "iport"
13faa91230bde46da937bf33010b9accc5bdeb59sd#define MEMBOARD "memboard"
908f1e1388f616898b4e515d343c0414f2a6472esd#define MEMORYBUFFER "memory-buffer"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define MEMORYCONTROL "memory-controller"
908f1e1388f616898b4e515d343c0414f2a6472esd#define MICROCORE "micro-core"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define MOTHERBOARD "motherboard"
14ea4bb737263733ad80a36b4f73f681c30a6b45sd#define NIU "niu"
14ea4bb737263733ad80a36b4f73f681c30a6b45sd#define NIUFN "niufn"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCI_BUS "pcibus"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCI_DEVICE "pcidev"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCI_FUNCTION "pcifn"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_BUS "pciexbus"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_DEVICE "pciexdev"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_FUNCTION "pciexfn"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_ROOT "pciexrc"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_SWUP "pciexswu"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define PCIEX_SWDWN "pciexswd"
ded9341448cd6e2573619c7f6fe98909bdd35ec6Hyon Kim#define POWERBOARD "powerboard"
2eeaed14a5e2ed9bd811643ad5bffc3510ca0310robj#define POWERMODULE "powermodule"
2eeaed14a5e2ed9bd811643ad5bffc3510ca0310robj#define PSU "psu"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define RANK "rank"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define RECEPTACLE "receptacle"
908f1e1388f616898b4e515d343c0414f2a6472esd#define RISER "riser"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define SASEXPANDER "sas-expander"
908f1e1388f616898b4e515d343c0414f2a6472esd#define SHELF "shelf"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define SCSI_DEVICE "scsi-device"
940d71d237794874e18a0eb72f6564821a823517eschrock#define SES_ENCLOSURE "ses-enclosure"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define SMP_DEVICE "smp-device"
4df55fde49134f9735f84011f23a767c75e393c7Janie Lu#define SP "sp"
53dbcc5939527e6d5d52d814e51e364b5e8bb532Sundeep Panicker#define SUBCHASSIS "subchassis"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define SYSTEMBOARD "systemboard"
14ea4bb737263733ad80a36b4f73f681c30a6b45sd#define XAUI "xaui"
14ea4bb737263733ad80a36b4f73f681c30a6b45sd#define XFP "xfp"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi/*
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi * Allowable hc node property group and property names
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi */
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PGROUP_IO "io"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_IO_DEVTYPE "devtype"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_IO_DRIVER "driver"
9dd0f810214fdc8e1af881a9a5c4b6927629ff9ecindi#define TOPO_IO_MODULE "module"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_IO_DEV "dev"
602ca9ea8f9ce0933f0944601cc5d230e91a950dcth#define TOPO_IO_DEVID "devid"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_IO_DEV_PATH "devfs-path"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_IO_AP_PATH "ap-path"
602ca9ea8f9ce0933f0944601cc5d230e91a950dcth#define TOPO_IO_PHYS_PATH "phys-path"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PGROUP_PCI "pci"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PCI_VENDID "vendor-id"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PCI_DEVID "device-id"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PCI_EXCAP "extended-capabilities"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PCI_BDF "BDF"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#define TOPO_PCI_CLASS "class-code"
eae2e508a8e70b1ec407b10bd068c080651bbe5ckrishnae#define TOPO_PCI_AADDR "assigned-addresses"
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_PGROUP_BINDING "binding"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_BINDING_OCCUPANT "occupant-path"
aed5247ff899ec457005d93dfbdb4ffd74574695Joshua M. Clulow#define TOPO_BINDING_DRIVER "driver"
aed5247ff899ec457005d93dfbdb4ffd74574695Joshua M. Clulow#define TOPO_BINDING_DEVCTL "devctl"
aed5247ff899ec457005d93dfbdb4ffd74574695Joshua M. Clulow#define TOPO_BINDING_ENCLOSURE "enclosure"
aed5247ff899ec457005d93dfbdb4ffd74574695Joshua M. Clulow#define TOPO_BINDING_SLOT "slot"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim
44ed9dbbfa620821ecf59a131462082f628dd0f3Stephen Hanson#define TOPO_PGROUP_STORAGE "storage"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_INITIATOR_PORT "initiator-port"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_INITIATOR_PORT_PM "initiator-port-pm"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_TARGET_PORT "target-port"
44ed9dbbfa620821ecf59a131462082f628dd0f3Stephen Hanson#define TOPO_STORAGE_TARGET_PORT_L0ID "target-port-l0id"
44ed9dbbfa620821ecf59a131462082f628dd0f3Stephen Hanson#define TOPO_STORAGE_TARGET_PORT_L0IDS "target-port-l0ids"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_ATTACHED_PORT "attached-port"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_TARGET_PORT_PM "target-port-pm"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_ATTACHED_PORT_PM "attached-port-pm"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_DEVID "devid"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_LUN64 "lun64"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_DEVICE_TYPE "inquiry-device-type"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_MANUFACTURER "manufacturer"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_MODEL "model"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_FIRMWARE_REV "firmware-revision"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_SAS_PHY_MASK "receptacle-pm"
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#define TOPO_STORAGE_SAS_CONNECTOR_TYPE "sas-connector-type"
03f9f63d24f0494b7d47b927090ad9045e396402Tom Pothier
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PGROUP_SES "ses"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson/* Applied any SES standard related topo node. */
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_NODE_ID "node-id"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_TARGET_PATH "target-path"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SES_DEVID "ses-devid"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SES_DEV_PATH "ses-devfs-path"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SES_PHYS_PATH "ses-phys-path"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SES_TARGET_PORT "ses-target-port"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PGROUP_SMP "smp"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson/* host SMP target related info for an expander node. */
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SMP_DEVID "smp-devid"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SMP_DEV_PATH "smp-devfs-path"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SMP_PHYS_PATH "smp-phys-path"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SMP_TARGET_PORT "smp-target-port"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SAS_ADDR "sas-address"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_PHY_COUNT "phy-count"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_PATHS "paths"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_CHASSIS_TYPE "chassis-type"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SAS_PHY_MASK "phy-mask"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson#define TOPO_PROP_SAS_CONNECTOR_TYPE "sas-connector-type"
e58a33b62cd4c9a6815fd752ce58b5f389289da1Stephen Hanson
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#ifdef __cplusplus
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi}
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#endif
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi
0eb822a1c0c2bea495647510b75f77f0e57633ebcindi#endif /* _TOPO_HC_H */