70025d765b044c6d8594bb965a2247a61e991a99johnny/*
70025d765b044c6d8594bb965a2247a61e991a99johnny * CDDL HEADER START
70025d765b044c6d8594bb965a2247a61e991a99johnny *
70025d765b044c6d8594bb965a2247a61e991a99johnny * The contents of this file are subject to the terms of the
5c59319b8761ccd4b952eec8d5caecf298024607Dan Mick * Common Development and Distribution License (the "License").
5c59319b8761ccd4b952eec8d5caecf298024607Dan Mick * You may not use this file except in compliance with the License.
70025d765b044c6d8594bb965a2247a61e991a99johnny *
70025d765b044c6d8594bb965a2247a61e991a99johnny * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
70025d765b044c6d8594bb965a2247a61e991a99johnny * or http://www.opensolaris.org/os/licensing.
70025d765b044c6d8594bb965a2247a61e991a99johnny * See the License for the specific language governing permissions
70025d765b044c6d8594bb965a2247a61e991a99johnny * and limitations under the License.
70025d765b044c6d8594bb965a2247a61e991a99johnny *
70025d765b044c6d8594bb965a2247a61e991a99johnny * When distributing Covered Code, include this CDDL HEADER in each
70025d765b044c6d8594bb965a2247a61e991a99johnny * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
70025d765b044c6d8594bb965a2247a61e991a99johnny * If applicable, add the following below this CDDL HEADER, with the
70025d765b044c6d8594bb965a2247a61e991a99johnny * fields enclosed by brackets "[]" replaced with your own identifying
70025d765b044c6d8594bb965a2247a61e991a99johnny * information: Portions Copyright [yyyy] [name of copyright owner]
70025d765b044c6d8594bb965a2247a61e991a99johnny *
70025d765b044c6d8594bb965a2247a61e991a99johnny * CDDL HEADER END
70025d765b044c6d8594bb965a2247a61e991a99johnny */
70025d765b044c6d8594bb965a2247a61e991a99johnny/*
5c59319b8761ccd4b952eec8d5caecf298024607Dan Mick * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
70025d765b044c6d8594bb965a2247a61e991a99johnny * Use is subject to license terms.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Copyright 2016 Joyent, Inc.
70025d765b044c6d8594bb965a2247a61e991a99johnny */
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny#ifndef _ACPI_PCI_H
70025d765b044c6d8594bb965a2247a61e991a99johnny#define _ACPI_PCI_H
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny#ifdef __cplusplus
70025d765b044c6d8594bb965a2247a61e991a99johnnyextern "C" {
70025d765b044c6d8594bb965a2247a61e991a99johnny#endif
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny/*
70025d765b044c6d8594bb965a2247a61e991a99johnny * Memory mapped configuration space address description table documented
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * in ACPI 3.0. These definitions are currently not the same as in the
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * actbl2.h from Intel. This file might be removed if the code can be ported
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * to use the definition provided by Intel.
70025d765b044c6d8594bb965a2247a61e991a99johnny */
70025d765b044c6d8594bb965a2247a61e991a99johnny#pragma pack(1)
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnnytypedef struct cfg_base_addr_alloc {
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT64 base_addr;
5c59319b8761ccd4b952eec8d5caecf298024607Dan Mick UINT16 segment;
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT8 start_bno;
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT8 end_bno;
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT32 reserved;
70025d765b044c6d8594bb965a2247a61e991a99johnny} CFG_BASE_ADDR_ALLOC;
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnnytypedef struct mcfg_table {
70025d765b044c6d8594bb965a2247a61e991a99johnny char Signature[4]; /* MCFG signature */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT32 Length; /* Length of table, in bytes */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT8 Revision; /* ACPI Specification minor version # */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT8 Checksum; /* To make sum of entire table == 0 */
70025d765b044c6d8594bb965a2247a61e991a99johnny char OemId[6]; /* OEM identification */
70025d765b044c6d8594bb965a2247a61e991a99johnny char OemTableId[8]; /* OEM table identification */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT32 OemRevision; /* OEM revision number */
70025d765b044c6d8594bb965a2247a61e991a99johnny char CreatorId[4]; /* Table creator vendor Id */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT32 CreatorRevision; /* Table creator utility revision no */
70025d765b044c6d8594bb965a2247a61e991a99johnny UINT8 Reserved[8]; /* Reserved */
70025d765b044c6d8594bb965a2247a61e991a99johnny /* List of memory mapped cfg base address allocation structures */
70025d765b044c6d8594bb965a2247a61e991a99johnny CFG_BASE_ADDR_ALLOC CfgBaseAddrAllocList[1];
70025d765b044c6d8594bb965a2247a61e991a99johnny} MCFG_TABLE;
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny#pragma pack()
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny#ifdef __cplusplus
70025d765b044c6d8594bb965a2247a61e991a99johnny}
70025d765b044c6d8594bb965a2247a61e991a99johnny#endif
70025d765b044c6d8594bb965a2247a61e991a99johnny
70025d765b044c6d8594bb965a2247a61e991a99johnny#endif /* _ACPI_PCI_H */