Annotation of Gnu-Mach/i386/grub/acpi.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  GRUB  --  GRand Unified Bootloader
                      3:  *  Copyright (C) 2009  Free Software Foundation, Inc.
                      4:  *
                      5:  *  GRUB is free software: you can redistribute it and/or modify
                      6:  *  it under the terms of the GNU General Public License as published by
                      7:  *  the Free Software Foundation, either version 3 of the License, or
                      8:  *  (at your option) any later version.
                      9:  *
                     10:  *  GRUB is distributed in the hope that it will be useful,
                     11:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
                     12:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     13:  *  GNU General Public License for more details.
                     14:  *
                     15:  *  You should have received a copy of the GNU General Public License
                     16:  *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
                     17:  */
                     18: 
                     19: #ifndef GRUB_ACPI_HEADER
                     20: #define GRUB_ACPI_HEADER       1
                     21: 
                     22: #ifndef GRUB_DSDT_TEST
                     23: #include <grub/types.h>
                     24: #include <grub/err.h>
                     25: #endif
                     26: 
                     27: #define GRUB_RSDP_SIGNATURE "RSD PTR "
                     28: #define GRUB_RSDP_SIGNATURE_SIZE 8
                     29: 
                     30: struct grub_acpi_rsdp_v10
                     31: {
                     32:   grub_uint8_t signature[GRUB_RSDP_SIGNATURE_SIZE];
                     33:   grub_uint8_t checksum;
                     34:   grub_uint8_t oemid[6];
                     35:   grub_uint8_t revision;
                     36:   grub_uint32_t rsdt_addr;
                     37: } GRUB_PACKED;
                     38: 
                     39: struct grub_acpi_rsdp_v20
                     40: {
                     41:   struct grub_acpi_rsdp_v10 rsdpv1;
                     42:   grub_uint32_t length;
                     43:   grub_uint64_t xsdt_addr;
                     44:   grub_uint8_t checksum;
                     45:   grub_uint8_t reserved[3];
                     46: } GRUB_PACKED;
                     47: 
                     48: struct grub_acpi_table_header
                     49: {
                     50:   grub_uint8_t signature[4];
                     51:   grub_uint32_t length;
                     52:   grub_uint8_t revision;
                     53:   grub_uint8_t checksum;
                     54:   grub_uint8_t oemid[6];
                     55:   grub_uint8_t oemtable[8];
                     56:   grub_uint32_t oemrev;
                     57:   grub_uint8_t creator_id[4];
                     58:   grub_uint32_t creator_rev;
                     59: } GRUB_PACKED;
                     60: 
                     61: #define GRUB_ACPI_FADT_SIGNATURE "FACP"
                     62: 
                     63: struct grub_acpi_fadt
                     64: {
                     65:   struct grub_acpi_table_header hdr;
                     66:   grub_uint32_t facs_addr;
                     67:   grub_uint32_t dsdt_addr;
                     68:   grub_uint8_t somefields1[20];
                     69:   grub_uint32_t pm1a;
                     70:   grub_uint8_t somefields2[64];
                     71:   grub_uint64_t facs_xaddr;
                     72:   grub_uint64_t dsdt_xaddr;
                     73:   grub_uint8_t somefields3[96];
                     74: } GRUB_PACKED;
                     75: 
                     76: #define GRUB_ACPI_MADT_SIGNATURE "APIC"
                     77: 
                     78: struct grub_acpi_madt_entry_header
                     79: {
                     80:   grub_uint8_t type;
                     81:   grub_uint8_t len;
                     82: };
                     83: 
                     84: struct grub_acpi_madt
                     85: {
                     86:   struct grub_acpi_table_header hdr;
                     87:   grub_uint32_t lapic_addr;
                     88:   grub_uint32_t flags;
                     89:   struct grub_acpi_madt_entry_header entries[0];
                     90: };
                     91: 
                     92: enum
                     93:   {
                     94:     GRUB_ACPI_MADT_ENTRY_TYPE_LAPIC = 0,
                     95:     GRUB_ACPI_MADT_ENTRY_TYPE_IOAPIC = 1,
                     96:     GRUB_ACPI_MADT_ENTRY_TYPE_INTERRUPT_OVERRIDE = 2,
                     97:     GRUB_ACPI_MADT_ENTRY_TYPE_LAPIC_NMI = 4,
                     98:     GRUB_ACPI_MADT_ENTRY_TYPE_SAPIC = 6,
                     99:     GRUB_ACPI_MADT_ENTRY_TYPE_LSAPIC = 7,
                    100:     GRUB_ACPI_MADT_ENTRY_TYPE_PLATFORM_INT_SOURCE = 8
                    101:   };
                    102: 
                    103: struct grub_acpi_madt_entry_lapic
                    104: {
                    105:   struct grub_acpi_madt_entry_header hdr;
                    106:   grub_uint8_t acpiid;
                    107:   grub_uint8_t apicid;
                    108:   grub_uint32_t flags;
                    109: };
                    110: 
                    111: struct grub_acpi_madt_entry_ioapic
                    112: {
                    113:   struct grub_acpi_madt_entry_header hdr;
                    114:   grub_uint8_t id;
                    115:   grub_uint8_t pad;
                    116:   grub_uint32_t address;
                    117:   grub_uint32_t global_sys_interrupt;
                    118: };
                    119: 
                    120: struct grub_acpi_madt_entry_interrupt_override
                    121: {
                    122:   struct grub_acpi_madt_entry_header hdr;
                    123:   grub_uint8_t bus;
                    124:   grub_uint8_t source;
                    125:   grub_uint32_t global_sys_interrupt;
                    126:   grub_uint16_t flags;
                    127: } GRUB_PACKED;
                    128: 
                    129: 
                    130: struct grub_acpi_madt_entry_lapic_nmi
                    131: {
                    132:   struct grub_acpi_madt_entry_header hdr;
                    133:   grub_uint8_t acpiid;
                    134:   grub_uint16_t flags;
                    135:   grub_uint8_t lint;
                    136: } GRUB_PACKED;
                    137: 
                    138: struct grub_acpi_madt_entry_sapic
                    139: {
                    140:   struct grub_acpi_madt_entry_header hdr;
                    141:   grub_uint8_t id;
                    142:   grub_uint8_t pad;
                    143:   grub_uint32_t global_sys_interrupt_base;
                    144:   grub_uint64_t addr;
                    145: };
                    146: 
                    147: struct grub_acpi_madt_entry_lsapic
                    148: {
                    149:   struct grub_acpi_madt_entry_header hdr;
                    150:   grub_uint8_t cpu_id;
                    151:   grub_uint8_t id;
                    152:   grub_uint8_t eid;
                    153:   grub_uint8_t pad[3];
                    154:   grub_uint32_t flags;
                    155:   grub_uint32_t cpu_uid;
                    156:   grub_uint8_t cpu_uid_str[0];
                    157: };
                    158: 
                    159: struct grub_acpi_madt_entry_platform_int_source
                    160: {
                    161:   struct grub_acpi_madt_entry_header hdr;
                    162:   grub_uint16_t flags;
                    163:   grub_uint8_t inttype;
                    164:   grub_uint8_t cpu_id;
                    165:   grub_uint8_t cpu_eid;
                    166:   grub_uint8_t sapic_vector;
                    167:   grub_uint32_t global_sys_int;
                    168:   grub_uint32_t src_flags;
                    169: };
                    170: 
                    171: enum
                    172:   {
                    173:     GRUB_ACPI_MADT_ENTRY_SAPIC_FLAGS_ENABLED = 1
                    174:   };
                    175: 
                    176: #ifndef GRUB_DSDT_TEST
                    177: struct grub_acpi_rsdp_v10 *grub_acpi_get_rsdpv1 (void);
                    178: struct grub_acpi_rsdp_v20 *grub_acpi_get_rsdpv2 (void);
                    179: struct grub_acpi_rsdp_v10 *grub_machine_acpi_get_rsdpv1 (void);
                    180: struct grub_acpi_rsdp_v20 *grub_machine_acpi_get_rsdpv2 (void);
                    181: grub_uint8_t grub_byte_checksum (void *base, grub_size_t size);
                    182: 
                    183: grub_err_t grub_acpi_create_ebda (void);
                    184: 
                    185: void grub_acpi_halt (void);
                    186: #endif
                    187: 
                    188: #define GRUB_ACPI_SLP_EN (1 << 13)
                    189: #define GRUB_ACPI_SLP_TYP_OFFSET 10
                    190: 
                    191: enum
                    192:   {
                    193:     GRUB_ACPI_OPCODE_ZERO = 0, GRUB_ACPI_OPCODE_ONE = 1,
                    194:     GRUB_ACPI_OPCODE_NAME = 8, GRUB_ACPI_OPCODE_BYTE_CONST = 0x0a,
                    195:     GRUB_ACPI_OPCODE_WORD_CONST = 0x0b,
                    196:     GRUB_ACPI_OPCODE_DWORD_CONST = 0x0c,
                    197:     GRUB_ACPI_OPCODE_STRING_CONST = 0x0d,
                    198:     GRUB_ACPI_OPCODE_SCOPE = 0x10,
                    199:     GRUB_ACPI_OPCODE_BUFFER = 0x11,
                    200:     GRUB_ACPI_OPCODE_PACKAGE = 0x12,
                    201:     GRUB_ACPI_OPCODE_METHOD = 0x14, GRUB_ACPI_OPCODE_EXTOP = 0x5b,
                    202:     GRUB_ACPI_OPCODE_CREATE_WORD_FIELD = 0x8b,
                    203:     GRUB_ACPI_OPCODE_CREATE_BYTE_FIELD = 0x8c,
                    204:     GRUB_ACPI_OPCODE_IF = 0xa0, GRUB_ACPI_OPCODE_ONES = 0xff
                    205:   };
                    206: enum
                    207:   {
                    208:     GRUB_ACPI_EXTOPCODE_MUTEX = 0x01,
                    209:     GRUB_ACPI_EXTOPCODE_EVENT_OP = 0x02,
                    210:     GRUB_ACPI_EXTOPCODE_OPERATION_REGION = 0x80,
                    211:     GRUB_ACPI_EXTOPCODE_FIELD_OP = 0x81,
                    212:     GRUB_ACPI_EXTOPCODE_DEVICE_OP = 0x82,
                    213:     GRUB_ACPI_EXTOPCODE_PROCESSOR_OP = 0x83,
                    214:     GRUB_ACPI_EXTOPCODE_POWER_RES_OP = 0x84,
                    215:     GRUB_ACPI_EXTOPCODE_THERMAL_ZONE_OP = 0x85,
                    216:     GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP = 0x86,
                    217:     GRUB_ACPI_EXTOPCODE_BANK_FIELD_OP = 0x87,
                    218:   };
                    219: 
                    220: #endif /* ! GRUB_ACPI_HEADER */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.