1*881Sjohnny /* 2*881Sjohnny * CDDL HEADER START 3*881Sjohnny * 4*881Sjohnny * The contents of this file are subject to the terms of the 5*881Sjohnny * Common Development and Distribution License, Version 1.0 only 6*881Sjohnny * (the "License"). You may not use this file except in compliance 7*881Sjohnny * with the License. 8*881Sjohnny * 9*881Sjohnny * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*881Sjohnny * or http://www.opensolaris.org/os/licensing. 11*881Sjohnny * See the License for the specific language governing permissions 12*881Sjohnny * and limitations under the License. 13*881Sjohnny * 14*881Sjohnny * When distributing Covered Code, include this CDDL HEADER in each 15*881Sjohnny * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*881Sjohnny * If applicable, add the following below this CDDL HEADER, with the 17*881Sjohnny * fields enclosed by brackets "[]" replaced with your own identifying 18*881Sjohnny * information: Portions Copyright [yyyy] [name of copyright owner] 19*881Sjohnny * 20*881Sjohnny * CDDL HEADER END 21*881Sjohnny */ 22*881Sjohnny 23*881Sjohnny /* 24*881Sjohnny * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 25*881Sjohnny * Use is subject to license terms. 26*881Sjohnny */ 27*881Sjohnny 28*881Sjohnny #ifndef _ACPI_PCI_H 29*881Sjohnny #define _ACPI_PCI_H 30*881Sjohnny 31*881Sjohnny #pragma ident "%Z%%M% %I% %E% SMI" 32*881Sjohnny 33*881Sjohnny #ifdef __cplusplus 34*881Sjohnny extern "C" { 35*881Sjohnny #endif 36*881Sjohnny 37*881Sjohnny /* 38*881Sjohnny * Memory mapped configuration space address description table documented 39*881Sjohnny * in ACPI 3.0. These definitions are currently not included in the 40*881Sjohnny * actbl.h from Intel. This file will need to be removed once Intel has 41*881Sjohnny * updated their include file with these information. 42*881Sjohnny */ 43*881Sjohnny #define MCFG_SIG "MCFG" /* Memory mapped config space address */ 44*881Sjohnny /* description table's signature */ 45*881Sjohnny 46*881Sjohnny #pragma pack(1) 47*881Sjohnny 48*881Sjohnny typedef struct cfg_base_addr_alloc { 49*881Sjohnny UINT64 base_addr; 50*881Sjohnny UINT16 group_bno; 51*881Sjohnny UINT8 start_bno; 52*881Sjohnny UINT8 end_bno; 53*881Sjohnny UINT32 reserved; 54*881Sjohnny } CFG_BASE_ADDR_ALLOC; 55*881Sjohnny 56*881Sjohnny typedef struct mcfg_table { 57*881Sjohnny char Signature[4]; /* MCFG signature */ 58*881Sjohnny UINT32 Length; /* Length of table, in bytes */ 59*881Sjohnny UINT8 Revision; /* ACPI Specification minor version # */ 60*881Sjohnny UINT8 Checksum; /* To make sum of entire table == 0 */ 61*881Sjohnny char OemId[6]; /* OEM identification */ 62*881Sjohnny char OemTableId[8]; /* OEM table identification */ 63*881Sjohnny UINT32 OemRevision; /* OEM revision number */ 64*881Sjohnny char CreatorId[4]; /* Table creator vendor Id */ 65*881Sjohnny UINT32 CreatorRevision; /* Table creator utility revision no */ 66*881Sjohnny UINT8 Reserved[8]; /* Reserved */ 67*881Sjohnny /* List of memory mapped cfg base address allocation structures */ 68*881Sjohnny CFG_BASE_ADDR_ALLOC CfgBaseAddrAllocList[1]; 69*881Sjohnny } MCFG_TABLE; 70*881Sjohnny 71*881Sjohnny #pragma pack() 72*881Sjohnny 73*881Sjohnny #ifdef __cplusplus 74*881Sjohnny } 75*881Sjohnny #endif 76*881Sjohnny 77*881Sjohnny #endif /* _ACPI_PCI_H */ 78