xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acpi_pci.h (revision 7b1019a6)
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*7b1019a6SJerry 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*7b1019a6SJerry Jelinek  * in ACPI 3.0.  These definitions are currently not the same as in the
37*7b1019a6SJerry Jelinek  * actbl2.h from Intel.  This file might be removed if the code can be ported
38*7b1019a6SJerry 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