acpi_fw.h revision b6917abefc343244b784f0cc34bc65b01469c3bf
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _ACPI_FW_H
#define _ACPI_FW_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
extern void process_acpi_properties();
#define ACPI_RSDP_SIG "RSD PTR "
#define ACPI_RSDP_SIG_LEN (8)
#define ACPI_TABLE_SIG_LEN (4)
#define ACPI_EBDA_SEG_ADDR (0x40e)
#define ACPI_EBDA_LEN (1024)
#pragma pack(1)
struct rsdp_v1 {
char sig[8];
char oem_id[6];
char revision;
};
struct rsdp {
char reserved[3];
};
struct table_header {
char sig[4];
char oem_id[6];
char oem_table_id[8];
};
struct xsdt {
struct table_header hdr;
union {
uint32_t r[1];
uint64_t x[1];
} p;
};
#define MADT_PROCESSOR 0
struct madt_processor {
};
struct madt {
struct table_header hdr;
};
struct srat_processor {
};
struct srat_x2apic {
};
struct srat_memory {
};
struct srat_item {
union {
struct srat_processor p;
struct srat_memory m;
struct srat_x2apic xp;
} i;
};
struct srat {
struct table_header hdr;
};
#define SRAT_PROCESSOR (0)
#define SRAT_MEMORY (1)
#define SRAT_X2APIC (2)
#define SRAT_ENABLED (1)
#define SRAT_HOT_PLUG (2)
#define SRAT_NON_VOLATILE (4)
/*
* Pointer to System Resource Affinity Table (SRAT)
*/
struct slit {
struct table_header hdr;
};
/*
* Pointer to System Locality Information Table (SLIT)
*/
/*
* Arbitrary limit on number of localities we handle; if
* this limit is raised to more than UINT16_MAX, make sure
* process_slit() knows how to handle it.
*/
#define SLIT_LOCALITIES_MAX (4096)
#define SLIT_NUM_PROPNAME "acpi-slit-localities"
#define SLIT_PROPNAME "acpi-slit"
#pragma pack()
#ifdef __cplusplus
}
#endif
#endif /* _ACPI_FW_H */