diff options
author | Erwan Velu <erwan.velu@free.fr> | 2009-12-01 00:08:15 +0100 |
---|---|---|
committer | Erwan Velu <erwan.velu@free.fr> | 2009-12-04 10:19:00 +0100 |
commit | 5db2da81b19f13b183737e119df33c0024c3d1ee (patch) | |
tree | ed40c044a2f849cb209b2f851308efef281afdf7 /com32/gplinclude/acpi/madt.h | |
parent | 2390a80f8e5c3a70f4ddc44bd53166fbc1f9f62b (diff) | |
download | syslinux-5db2da81b19f13b183737e119df33c0024c3d1ee.tar.gz |
acpi: more work on the madt structures
Impact: under dev.
Fixing madt structure & parsing
Diffstat (limited to 'com32/gplinclude/acpi/madt.h')
-rw-r--r-- | com32/gplinclude/acpi/madt.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/com32/gplinclude/acpi/madt.h b/com32/gplinclude/acpi/madt.h new file mode 100644 index 00000000..30969f29 --- /dev/null +++ b/com32/gplinclude/acpi/madt.h @@ -0,0 +1,55 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2006 Erwan Velu - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 53 Temple Place Ste 330, + * Boston MA 02111-1307, USA; either version 2 of the License, or + * (at your option) any later version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#ifndef MADT_H +#define MADT_H +#include <inttypes.h> +#include <stdbool.h> + +enum { + PROCESSOR_LOCAL_APIC = 0, + IO_APIC = 1, + INTERRUPT_SOURCE_OVERRIDE = 2, + NMI = 3, + LOCAL_APIC_NMI_STRUCTURE = 4, + LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE = 5, + IO_SAPIC = 6, + LOCAL_SAPIC = 7, + PLATEFORM_INTERRUPT_SOURCES = 8 +}; + +#define MAX_SLP 255 + +typedef struct { + uint8_t length; + uint8_t acpi_id; + uint8_t apic_id; + uint32_t flags; +} s_processor_local_apic; + +typedef struct { + uint8_t signature[4 + 1]; + uint32_t length; + uint8_t revision; + uint8_t checksum; + uint8_t oem_id[6 + 1]; + uint8_t oem_table_id[8 + 1]; + uint32_t oem_revision; + uint8_t creator_id[4 + 1]; + uint32_t creator_revision; + uint32_t local_apic_address; + uint32_t flags; + s_processor_local_apic processor_local_apic[MAX_SLP]; + uint8_t processor_local_apic_count; +} s_madt; + +#endif |