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  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 
  26 #ifndef _ACPI_PCI_H
  27 #define _ACPI_PCI_H
  28 
  29 #ifdef  __cplusplus
  30 extern "C" {
  31 #endif
  32 
  33 /*
  34  * Memory mapped configuration space address description table documented
  35  * in ACPI 3.0.  These definitions are currently not included in the
  36  * actbl.h from Intel.  This file will need to be removed once Intel has
  37  * updated their include file with these information.
  38  */
  39 #define MCFG_SIG        "MCFG"          /* Memory mapped config space address */
  40                                         /* description table's signature */
  41 
  42 #pragma pack(1)
  43 
  44 typedef struct cfg_base_addr_alloc {
  45         UINT64  base_addr;
  46         UINT16  segment;
  47         UINT8   start_bno;
  48         UINT8   end_bno;
  49         UINT32  reserved;
  50 } CFG_BASE_ADDR_ALLOC;
  51 
  52 typedef struct mcfg_table {
  53         char    Signature[4];           /* MCFG signature */
  54         UINT32  Length;                 /* Length of table, in bytes */
  55         UINT8   Revision;               /* ACPI Specification minor version # */
  56         UINT8   Checksum;               /* To make sum of entire table == 0 */
  57         char    OemId[6];               /* OEM identification */
  58         char    OemTableId[8];          /* OEM table identification */
  59         UINT32  OemRevision;            /* OEM revision number */
  60         char    CreatorId[4];           /* Table creator vendor Id */
  61         UINT32  CreatorRevision;        /* Table creator utility revision no */
  62         UINT8   Reserved[8];            /* Reserved */
  63         /* List of memory mapped cfg base address allocation structures */
  64         CFG_BASE_ADDR_ALLOC     CfgBaseAddrAllocList[1];
  65 } MCFG_TABLE;
  66 
  67 #pragma pack()
  68 
  69 #ifdef  __cplusplus
  70 }
  71 #endif
  72 
  73 #endif  /* _ACPI_PCI_H */