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 2009 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _HOSTBRIDGE_H 28 #define _HOSTBRIDGE_H 29 30 #include <libdevinfo.h> 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 #define HB_ENUMR_VERS 1 37 38 #define MAX_HBS 255 39 40 /* 41 * Solaris Drivers for hostbridge ASICs. 42 */ 43 #define SCHIZO "pcisch" 44 #define PSYCHO "pcipsy" 45 #define NPE "npe" 46 #define PCIEB "pcieb" 47 #define PCI_PCI "pci_pci" 48 #define PCI "pci" 49 #define PX "px" 50 51 /* 52 * These #defines are special values of bus and root complex instance 53 * numbers, used in calls to did_create(). They're here because it's 54 * the hostbridge enumerator that generally establishes the did_t values 55 * at the top level. 56 */ 57 #define TRUST_BDF (-1) /* Believe the bus value in the reg property */ 58 #define NO_RC (-2) /* Not a pci-express bus, so no root complex */ 59 60 /* 61 * PCI-express bridges to PCI, root complex instance is set to 62 * (instance of the PCI-express side root complex - TO_PCI) 63 */ 64 #define TO_PCI (1000) 65 66 extern tnode_t *pcihostbridge_declare(topo_mod_t *, tnode_t *, di_node_t, 67 topo_instance_t); 68 extern tnode_t *pciexhostbridge_declare(topo_mod_t *, tnode_t *, di_node_t, 69 topo_instance_t); 70 extern tnode_t *pciexrc_declare(topo_mod_t *, tnode_t *, di_node_t, 71 topo_instance_t); 72 73 #ifdef __cplusplus 74 } 75 #endif 76 77 #endif /* _HOSTBRIDGE_H */ 78