1*12054SStephen.Hanson@Sun.COM /* 2*12054SStephen.Hanson@Sun.COM * CDDL HEADER START 3*12054SStephen.Hanson@Sun.COM * 4*12054SStephen.Hanson@Sun.COM * The contents of this file are subject to the terms of the 5*12054SStephen.Hanson@Sun.COM * Common Development and Distribution License (the "License"). 6*12054SStephen.Hanson@Sun.COM * You may not use this file except in compliance with the License. 7*12054SStephen.Hanson@Sun.COM * 8*12054SStephen.Hanson@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*12054SStephen.Hanson@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*12054SStephen.Hanson@Sun.COM * See the License for the specific language governing permissions 11*12054SStephen.Hanson@Sun.COM * and limitations under the License. 12*12054SStephen.Hanson@Sun.COM * 13*12054SStephen.Hanson@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*12054SStephen.Hanson@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*12054SStephen.Hanson@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*12054SStephen.Hanson@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*12054SStephen.Hanson@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*12054SStephen.Hanson@Sun.COM * 19*12054SStephen.Hanson@Sun.COM * CDDL HEADER END 20*12054SStephen.Hanson@Sun.COM */ 21*12054SStephen.Hanson@Sun.COM 22*12054SStephen.Hanson@Sun.COM /* 23*12054SStephen.Hanson@Sun.COM * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 24*12054SStephen.Hanson@Sun.COM */ 25*12054SStephen.Hanson@Sun.COM 26*12054SStephen.Hanson@Sun.COM #ifndef _PCI_I86PC_H 27*12054SStephen.Hanson@Sun.COM #define _PCI_I86PC_H 28*12054SStephen.Hanson@Sun.COM 29*12054SStephen.Hanson@Sun.COM #include <pcibus_labels.h> 30*12054SStephen.Hanson@Sun.COM 31*12054SStephen.Hanson@Sun.COM #ifdef __cplusplus 32*12054SStephen.Hanson@Sun.COM extern "C" { 33*12054SStephen.Hanson@Sun.COM #endif 34*12054SStephen.Hanson@Sun.COM 35*12054SStephen.Hanson@Sun.COM /* 36*12054SStephen.Hanson@Sun.COM * Data for label lookup based on existing slot label. 37*12054SStephen.Hanson@Sun.COM * 38*12054SStephen.Hanson@Sun.COM * Platforms may need entries here if the slot labels 39*12054SStephen.Hanson@Sun.COM * provided by firmware are incorrect. 40*12054SStephen.Hanson@Sun.COM * 41*12054SStephen.Hanson@Sun.COM * Note that re-writing to NULL provides a way of getting rid of totally 42*12054SStephen.Hanson@Sun.COM * spurious labels. 43*12054SStephen.Hanson@Sun.COM */ 44*12054SStephen.Hanson@Sun.COM 45*12054SStephen.Hanson@Sun.COM slot_rwd_t x4600_rewrites[] = { 46*12054SStephen.Hanson@Sun.COM /* from hw, should be, test func */ 47*12054SStephen.Hanson@Sun.COM { "PCIX SLOT0", NULL, NULL }, 48*12054SStephen.Hanson@Sun.COM { "PCIX SLOT1", NULL, NULL }, 49*12054SStephen.Hanson@Sun.COM { "PCIX SLOT2", NULL, NULL }, 50*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT2", NULL, NULL }, 51*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT3", NULL, NULL }, 52*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT4", NULL, NULL }, 53*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT5", NULL, NULL }, 54*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT6", NULL, NULL }, 55*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT7", NULL, NULL }, 56*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT8", NULL, NULL } 57*12054SStephen.Hanson@Sun.COM }; 58*12054SStephen.Hanson@Sun.COM 59*12054SStephen.Hanson@Sun.COM slot_rwd_t netra_x4200_rewrites[] = { 60*12054SStephen.Hanson@Sun.COM /* from hw, should be, test func */ 61*12054SStephen.Hanson@Sun.COM { "PCIExp SLOT1", NULL, NULL }, 62*12054SStephen.Hanson@Sun.COM { "PCIX SLOT2", NULL, NULL }, 63*12054SStephen.Hanson@Sun.COM }; 64*12054SStephen.Hanson@Sun.COM 65*12054SStephen.Hanson@Sun.COM slot_rwd_t x4250_rewrites[] = { 66*12054SStephen.Hanson@Sun.COM /* from hw, should be, test func */ 67*12054SStephen.Hanson@Sun.COM { "SLOT0", NULL, NULL }, 68*12054SStephen.Hanson@Sun.COM { "SLOT1", NULL, NULL }, 69*12054SStephen.Hanson@Sun.COM { "SLOT2", NULL, NULL } 70*12054SStephen.Hanson@Sun.COM }; 71*12054SStephen.Hanson@Sun.COM 72*12054SStephen.Hanson@Sun.COM plat_rwd_t plat_rewrites[] = { 73*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4600", 74*12054SStephen.Hanson@Sun.COM sizeof (x4600_rewrites) / sizeof (slot_rwd_t), 75*12054SStephen.Hanson@Sun.COM x4600_rewrites }, 76*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4600-M2", 77*12054SStephen.Hanson@Sun.COM sizeof (x4600_rewrites) / sizeof (slot_rwd_t), 78*12054SStephen.Hanson@Sun.COM x4600_rewrites }, 79*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4250", 80*12054SStephen.Hanson@Sun.COM sizeof (x4250_rewrites) / sizeof (slot_rwd_t), 81*12054SStephen.Hanson@Sun.COM x4250_rewrites }, 82*12054SStephen.Hanson@Sun.COM { "Netra-X4200-M2", 83*12054SStephen.Hanson@Sun.COM sizeof (netra_x4200_rewrites) / sizeof (slot_rwd_t), 84*12054SStephen.Hanson@Sun.COM netra_x4200_rewrites } 85*12054SStephen.Hanson@Sun.COM }; 86*12054SStephen.Hanson@Sun.COM 87*12054SStephen.Hanson@Sun.COM slotnm_rewrite_t SlotRWs = { 88*12054SStephen.Hanson@Sun.COM sizeof (plat_rewrites) / sizeof (plat_rwd_t), 89*12054SStephen.Hanson@Sun.COM plat_rewrites 90*12054SStephen.Hanson@Sun.COM }; 91*12054SStephen.Hanson@Sun.COM 92*12054SStephen.Hanson@Sun.COM /* 93*12054SStephen.Hanson@Sun.COM * Data for label lookup based on device info. 94*12054SStephen.Hanson@Sun.COM * 95*12054SStephen.Hanson@Sun.COM * Platforms need entries here if there is no physical slot number 96*12054SStephen.Hanson@Sun.COM * or slot-names. 97*12054SStephen.Hanson@Sun.COM */ 98*12054SStephen.Hanson@Sun.COM 99*12054SStephen.Hanson@Sun.COM extern int parent_is_rc(topo_mod_t *, did_t *); 100*12054SStephen.Hanson@Sun.COM extern int ba_is_2(topo_mod_t *, did_t *); 101*12054SStephen.Hanson@Sun.COM extern int ba_is_4(topo_mod_t *, did_t *); 102*12054SStephen.Hanson@Sun.COM 103*12054SStephen.Hanson@Sun.COM devlab_t x4600_missing[] = { 104*12054SStephen.Hanson@Sun.COM /* board, bridge, root-complex, bus, dev, label, test func */ 105*12054SStephen.Hanson@Sun.COM { 0, 2, 2, -1, -1, "PCIExp SLOT4", parent_is_rc }, 106*12054SStephen.Hanson@Sun.COM { 0, 3, 3, -1, -1, "PCIExp SLOT2", parent_is_rc }, 107*12054SStephen.Hanson@Sun.COM { 0, 4, 4, -1, -1, "PCIExp SLOT3", parent_is_rc }, 108*12054SStephen.Hanson@Sun.COM { 0, 8, 8, -1, -1, "PCIExp SLOT7", parent_is_rc }, 109*12054SStephen.Hanson@Sun.COM { 0, 9, 9, -1, -1, "PCIExp SLOT5", parent_is_rc }, 110*12054SStephen.Hanson@Sun.COM { 0, 10, 10, -1, -1, "PCIExp SLOT6", parent_is_rc } 111*12054SStephen.Hanson@Sun.COM }; 112*12054SStephen.Hanson@Sun.COM 113*12054SStephen.Hanson@Sun.COM devlab_t x4600m2_missing[] = { 114*12054SStephen.Hanson@Sun.COM /* board, bridge, root-complex, bus, dev, label, test func */ 115*12054SStephen.Hanson@Sun.COM { 0, 1, 1, -1, -1, "PCIExp SLOT4", parent_is_rc }, 116*12054SStephen.Hanson@Sun.COM { 0, 2, 2, -1, -1, "PCIExp SLOT2", parent_is_rc }, 117*12054SStephen.Hanson@Sun.COM { 0, 3, 3, -1, -1, "PCIExp SLOT3", parent_is_rc }, 118*12054SStephen.Hanson@Sun.COM { 0, 6, 6, -1, -1, "PCIExp SLOT7", parent_is_rc }, 119*12054SStephen.Hanson@Sun.COM { 0, 7, 7, -1, -1, "PCIExp SLOT5", parent_is_rc }, 120*12054SStephen.Hanson@Sun.COM { 0, 8, 8, -1, -1, "PCIExp SLOT6", parent_is_rc } 121*12054SStephen.Hanson@Sun.COM }; 122*12054SStephen.Hanson@Sun.COM 123*12054SStephen.Hanson@Sun.COM devlab_t x4250_missing[] = { 124*12054SStephen.Hanson@Sun.COM /* board, bridge, root-complex, bus, dev, label, test func */ 125*12054SStephen.Hanson@Sun.COM { 0, 0, 0, -1, -1, "PCIExp SLOT3", ba_is_2 }, 126*12054SStephen.Hanson@Sun.COM { 0, 0, 0, -1, -1, "PCIExp SLOT0", ba_is_4 }, 127*12054SStephen.Hanson@Sun.COM { 0, 2, 2, -1, -1, "PCIExp SLOT4", ba_is_2 }, 128*12054SStephen.Hanson@Sun.COM { 0, 2, 2, -1, -1, "PCIExp SLOT1", ba_is_4 }, 129*12054SStephen.Hanson@Sun.COM { 0, 4, 4, -1, -1, "PCIExp SLOT5", ba_is_2 }, 130*12054SStephen.Hanson@Sun.COM { 0, 4, 4, -1, -1, "PCIExp SLOT2", ba_is_4 } 131*12054SStephen.Hanson@Sun.COM }; 132*12054SStephen.Hanson@Sun.COM 133*12054SStephen.Hanson@Sun.COM devlab_t netra_x4200_missing[] = { 134*12054SStephen.Hanson@Sun.COM /* board, bridge, root-complex, bus, dev, label, test func */ 135*12054SStephen.Hanson@Sun.COM { 0, 4, 4, -1, -1, "PCIExp SLOT0", NULL }, 136*12054SStephen.Hanson@Sun.COM { 0, 0, 3 - TO_PCI, -1, -1, "PCIX SLOT", NULL }, 137*12054SStephen.Hanson@Sun.COM { 0, 0, 7 - TO_PCI, -1, -1, "PCIX SLOT", NULL } 138*12054SStephen.Hanson@Sun.COM }; 139*12054SStephen.Hanson@Sun.COM 140*12054SStephen.Hanson@Sun.COM pdevlabs_t plats_missing[] = { 141*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4600", 142*12054SStephen.Hanson@Sun.COM sizeof (x4600_missing) / sizeof (devlab_t), 143*12054SStephen.Hanson@Sun.COM x4600_missing }, 144*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4600-M2", 145*12054SStephen.Hanson@Sun.COM sizeof (x4600m2_missing) / sizeof (devlab_t), 146*12054SStephen.Hanson@Sun.COM x4600m2_missing }, 147*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4250", 148*12054SStephen.Hanson@Sun.COM sizeof (x4250_missing) / sizeof (devlab_t), 149*12054SStephen.Hanson@Sun.COM x4250_missing }, 150*12054SStephen.Hanson@Sun.COM { "Netra-X4200-M2", 151*12054SStephen.Hanson@Sun.COM sizeof (netra_x4200_missing) / sizeof (devlab_t), 152*12054SStephen.Hanson@Sun.COM netra_x4200_missing } 153*12054SStephen.Hanson@Sun.COM }; 154*12054SStephen.Hanson@Sun.COM 155*12054SStephen.Hanson@Sun.COM physnm_t x2100m2_pnms[] = { 156*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 157*12054SStephen.Hanson@Sun.COM { 37, "PCIe 0" }, 158*12054SStephen.Hanson@Sun.COM { 32, "PCIe 1" } 159*12054SStephen.Hanson@Sun.COM }; 160*12054SStephen.Hanson@Sun.COM 161*12054SStephen.Hanson@Sun.COM physnm_t x2200m2_pnms[] = { 162*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 163*12054SStephen.Hanson@Sun.COM { 37, "PCIe 0" }, 164*12054SStephen.Hanson@Sun.COM { 32, "PCIe 1" } 165*12054SStephen.Hanson@Sun.COM }; 166*12054SStephen.Hanson@Sun.COM 167*12054SStephen.Hanson@Sun.COM physnm_t x2250_pnms[] = { 168*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 169*12054SStephen.Hanson@Sun.COM { 6, "PCIe 0" } 170*12054SStephen.Hanson@Sun.COM }; 171*12054SStephen.Hanson@Sun.COM 172*12054SStephen.Hanson@Sun.COM physnm_t x2270_pnms[] = { 173*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 174*12054SStephen.Hanson@Sun.COM { 55, "PCIe 0" } 175*12054SStephen.Hanson@Sun.COM }; 176*12054SStephen.Hanson@Sun.COM 177*12054SStephen.Hanson@Sun.COM physnm_t x4170_pnms[] = { 178*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 179*12054SStephen.Hanson@Sun.COM { 1, "PCIe 0" }, 180*12054SStephen.Hanson@Sun.COM { 2, "PCIe 1" }, 181*12054SStephen.Hanson@Sun.COM { 3, "PCIe 2" } 182*12054SStephen.Hanson@Sun.COM }; 183*12054SStephen.Hanson@Sun.COM 184*12054SStephen.Hanson@Sun.COM physnm_t x4270_pnms[] = { 185*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 186*12054SStephen.Hanson@Sun.COM { 1, "PCIe 0" }, 187*12054SStephen.Hanson@Sun.COM { 2, "PCIe 1" }, 188*12054SStephen.Hanson@Sun.COM { 3, "PCIe 2" }, 189*12054SStephen.Hanson@Sun.COM { 4, "PCIe 3" }, 190*12054SStephen.Hanson@Sun.COM { 5, "PCIe 4" }, 191*12054SStephen.Hanson@Sun.COM { 6, "PCIe 5" } 192*12054SStephen.Hanson@Sun.COM }; 193*12054SStephen.Hanson@Sun.COM 194*12054SStephen.Hanson@Sun.COM physnm_t x4275_pnms[] = { 195*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 196*12054SStephen.Hanson@Sun.COM { 1, "PCIe 0" }, 197*12054SStephen.Hanson@Sun.COM { 2, "PCIe 1" }, 198*12054SStephen.Hanson@Sun.COM { 3, "PCIe 2" }, 199*12054SStephen.Hanson@Sun.COM { 4, "PCIe 3" }, 200*12054SStephen.Hanson@Sun.COM { 5, "PCIe 4" }, 201*12054SStephen.Hanson@Sun.COM { 6, "PCIe 5" } 202*12054SStephen.Hanson@Sun.COM }; 203*12054SStephen.Hanson@Sun.COM 204*12054SStephen.Hanson@Sun.COM physnm_t netra4270_pnms[] = { 205*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 206*12054SStephen.Hanson@Sun.COM { 1, "PCIe 0" }, 207*12054SStephen.Hanson@Sun.COM { 2, "PCIe 1" }, 208*12054SStephen.Hanson@Sun.COM { 3, "PCIe 2" }, 209*12054SStephen.Hanson@Sun.COM { 5, "PCIe 4" }, 210*12054SStephen.Hanson@Sun.COM { 6, "PCIe 5" } 211*12054SStephen.Hanson@Sun.COM }; 212*12054SStephen.Hanson@Sun.COM 213*12054SStephen.Hanson@Sun.COM physnm_t x4150_pnms[] = { 214*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 215*12054SStephen.Hanson@Sun.COM { 40, "PCIe 0" }, 216*12054SStephen.Hanson@Sun.COM { 48, "PCIe 1" }, 217*12054SStephen.Hanson@Sun.COM { 50, "PCIe 2" } 218*12054SStephen.Hanson@Sun.COM }; 219*12054SStephen.Hanson@Sun.COM 220*12054SStephen.Hanson@Sun.COM physnm_t x4450_pnms[] = { 221*12054SStephen.Hanson@Sun.COM /* Slot #, Label */ 222*12054SStephen.Hanson@Sun.COM { 52, "PCIe 0" }, 223*12054SStephen.Hanson@Sun.COM { 54, "PCIe 1" }, 224*12054SStephen.Hanson@Sun.COM { 40, "PCIe 2" }, 225*12054SStephen.Hanson@Sun.COM { 49, "PCIe 3" }, 226*12054SStephen.Hanson@Sun.COM { 51, "PCIe 4" }, 227*12054SStephen.Hanson@Sun.COM { 41, "PCIe 5" } 228*12054SStephen.Hanson@Sun.COM }; 229*12054SStephen.Hanson@Sun.COM 230*12054SStephen.Hanson@Sun.COM pphysnm_t plat_pnames[] = { 231*12054SStephen.Hanson@Sun.COM { "X2100-M2", 232*12054SStephen.Hanson@Sun.COM sizeof (x2100m2_pnms) / sizeof (physnm_t), 233*12054SStephen.Hanson@Sun.COM x2100m2_pnms }, 234*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X2100-M2", 235*12054SStephen.Hanson@Sun.COM sizeof (x2100m2_pnms) / sizeof (physnm_t), 236*12054SStephen.Hanson@Sun.COM x2100m2_pnms }, 237*12054SStephen.Hanson@Sun.COM { "X2200-M2", 238*12054SStephen.Hanson@Sun.COM sizeof (x2200m2_pnms) / sizeof (physnm_t), 239*12054SStephen.Hanson@Sun.COM x2200m2_pnms }, 240*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X2200-M2", 241*12054SStephen.Hanson@Sun.COM sizeof (x2200m2_pnms) / sizeof (physnm_t), 242*12054SStephen.Hanson@Sun.COM x2200m2_pnms }, 243*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X2250", 244*12054SStephen.Hanson@Sun.COM sizeof (x2250_pnms) / sizeof (physnm_t), 245*12054SStephen.Hanson@Sun.COM x2250_pnms }, 246*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X2270", 247*12054SStephen.Hanson@Sun.COM sizeof (x2270_pnms) / sizeof (physnm_t), 248*12054SStephen.Hanson@Sun.COM x2270_pnms }, 249*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4170", 250*12054SStephen.Hanson@Sun.COM sizeof (x4170_pnms) / sizeof (physnm_t), 251*12054SStephen.Hanson@Sun.COM x4170_pnms }, 252*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4270", 253*12054SStephen.Hanson@Sun.COM sizeof (x4270_pnms) / sizeof (physnm_t), 254*12054SStephen.Hanson@Sun.COM x4270_pnms }, 255*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4275", 256*12054SStephen.Hanson@Sun.COM sizeof (x4275_pnms) / sizeof (physnm_t), 257*12054SStephen.Hanson@Sun.COM x4275_pnms }, 258*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4170-Server", 259*12054SStephen.Hanson@Sun.COM sizeof (x4170_pnms) / sizeof (physnm_t), 260*12054SStephen.Hanson@Sun.COM x4170_pnms }, 261*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4270-Server", 262*12054SStephen.Hanson@Sun.COM sizeof (x4270_pnms) / sizeof (physnm_t), 263*12054SStephen.Hanson@Sun.COM x4270_pnms }, 264*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4275-Server", 265*12054SStephen.Hanson@Sun.COM sizeof (x4275_pnms) / sizeof (physnm_t), 266*12054SStephen.Hanson@Sun.COM x4275_pnms }, 267*12054SStephen.Hanson@Sun.COM { "Sun-Netra-X4270", 268*12054SStephen.Hanson@Sun.COM sizeof (netra4270_pnms) / sizeof (physnm_t), 269*12054SStephen.Hanson@Sun.COM netra4270_pnms }, 270*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4150", 271*12054SStephen.Hanson@Sun.COM sizeof (x4150_pnms) / sizeof (physnm_t), 272*12054SStephen.Hanson@Sun.COM x4150_pnms }, 273*12054SStephen.Hanson@Sun.COM { "Sun-Fire-X4450", 274*12054SStephen.Hanson@Sun.COM sizeof (x4450_pnms) / sizeof (physnm_t), 275*12054SStephen.Hanson@Sun.COM x4450_pnms } 276*12054SStephen.Hanson@Sun.COM }; 277*12054SStephen.Hanson@Sun.COM 278*12054SStephen.Hanson@Sun.COM missing_names_t Missing = { 279*12054SStephen.Hanson@Sun.COM sizeof (plats_missing) / sizeof (pdevlabs_t), 280*12054SStephen.Hanson@Sun.COM plats_missing 281*12054SStephen.Hanson@Sun.COM }; 282*12054SStephen.Hanson@Sun.COM 283*12054SStephen.Hanson@Sun.COM physlot_names_t PhyslotNMs = { 284*12054SStephen.Hanson@Sun.COM sizeof (plat_pnames) / sizeof (pphysnm_t), 285*12054SStephen.Hanson@Sun.COM plat_pnames 286*12054SStephen.Hanson@Sun.COM }; 287*12054SStephen.Hanson@Sun.COM 288*12054SStephen.Hanson@Sun.COM slotnm_rewrite_t *Slot_Rewrites = &SlotRWs; 289*12054SStephen.Hanson@Sun.COM physlot_names_t *Physlot_Names = &PhyslotNMs; 290*12054SStephen.Hanson@Sun.COM missing_names_t *Missing_Names = &Missing; 291*12054SStephen.Hanson@Sun.COM 292*12054SStephen.Hanson@Sun.COM #ifdef __cplusplus 293*12054SStephen.Hanson@Sun.COM } 294*12054SStephen.Hanson@Sun.COM #endif 295*12054SStephen.Hanson@Sun.COM 296*12054SStephen.Hanson@Sun.COM #endif /* _PCI_I86PC_H */ 297