170025d76Sjohnny /* 270025d76Sjohnny * CDDL HEADER START 370025d76Sjohnny * 470025d76Sjohnny * The contents of this file are subject to the terms of the 55c59319bSDan Mick * Common Development and Distribution License (the "License"). 65c59319bSDan Mick * You may not use this file except in compliance with the License. 770025d76Sjohnny * 870025d76Sjohnny * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 970025d76Sjohnny * or http://www.opensolaris.org/os/licensing. 1070025d76Sjohnny * See the License for the specific language governing permissions 1170025d76Sjohnny * and limitations under the License. 1270025d76Sjohnny * 1370025d76Sjohnny * When distributing Covered Code, include this CDDL HEADER in each 1470025d76Sjohnny * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1570025d76Sjohnny * If applicable, add the following below this CDDL HEADER, with the 1670025d76Sjohnny * fields enclosed by brackets "[]" replaced with your own identifying 1770025d76Sjohnny * information: Portions Copyright [yyyy] [name of copyright owner] 1870025d76Sjohnny * 1970025d76Sjohnny * CDDL HEADER END 2070025d76Sjohnny */ 2170025d76Sjohnny /* 225c59319bSDan Mick * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2370025d76Sjohnny * Use is subject to license terms. 24*385cc6b4SJerry Jelinek * Copyright 2016 Joyent, Inc. 2570025d76Sjohnny */ 2670025d76Sjohnny 2770025d76Sjohnny #ifndef _ACPI_PCI_H 2870025d76Sjohnny #define _ACPI_PCI_H 2970025d76Sjohnny 3070025d76Sjohnny #ifdef __cplusplus 3170025d76Sjohnny extern "C" { 3270025d76Sjohnny #endif 3370025d76Sjohnny 3470025d76Sjohnny /* 3570025d76Sjohnny * Memory mapped configuration space address description table documented 36*385cc6b4SJerry Jelinek * in ACPI 3.0. These definitions are currently not the same as in the 37*385cc6b4SJerry Jelinek * actbl2.h from Intel. This file might be removed if the code can be ported 38*385cc6b4SJerry Jelinek * to use the definition provided by Intel. 3970025d76Sjohnny */ 4070025d76Sjohnny #pragma pack(1) 4170025d76Sjohnny 4270025d76Sjohnny typedef struct cfg_base_addr_alloc { 4370025d76Sjohnny UINT64 base_addr; 445c59319bSDan Mick UINT16 segment; 4570025d76Sjohnny UINT8 start_bno; 4670025d76Sjohnny UINT8 end_bno; 4770025d76Sjohnny UINT32 reserved; 4870025d76Sjohnny } CFG_BASE_ADDR_ALLOC; 4970025d76Sjohnny 5070025d76Sjohnny typedef struct mcfg_table { 5170025d76Sjohnny char Signature[4]; /* MCFG signature */ 5270025d76Sjohnny UINT32 Length; /* Length of table, in bytes */ 5370025d76Sjohnny UINT8 Revision; /* ACPI Specification minor version # */ 5470025d76Sjohnny UINT8 Checksum; /* To make sum of entire table == 0 */ 5570025d76Sjohnny char OemId[6]; /* OEM identification */ 5670025d76Sjohnny char OemTableId[8]; /* OEM table identification */ 5770025d76Sjohnny UINT32 OemRevision; /* OEM revision number */ 5870025d76Sjohnny char CreatorId[4]; /* Table creator vendor Id */ 5970025d76Sjohnny UINT32 CreatorRevision; /* Table creator utility revision no */ 6070025d76Sjohnny UINT8 Reserved[8]; /* Reserved */ 6170025d76Sjohnny /* List of memory mapped cfg base address allocation structures */ 6270025d76Sjohnny CFG_BASE_ADDR_ALLOC CfgBaseAddrAllocList[1]; 6370025d76Sjohnny } MCFG_TABLE; 6470025d76Sjohnny 6570025d76Sjohnny #pragma pack() 6670025d76Sjohnny 6770025d76Sjohnny #ifdef __cplusplus 6870025d76Sjohnny } 6970025d76Sjohnny #endif 7070025d76Sjohnny 7170025d76Sjohnny #endif /* _ACPI_PCI_H */ 72