Home | History | Annotate | Download | only in acpi
      1 /* ----------------------------------------------------------------------- *
      2  *
      3  *   Copyright 2009-2011 Erwan Velu - All Rights Reserved
      4  *
      5  *   This program 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, Inc., 53 Temple Place Ste 330,
      8  *   Boston MA 02111-1307, USA; either version 2 of the License, or
      9  *   (at your option) any later version; incorporated herein by reference.
     10  *
     11  * ----------------------------------------------------------------------- */
     12 
     13 #ifndef ACPI_STRUCTS_H
     14 #define ACPI_STRUCTS_H
     15 #include <inttypes.h>
     16 #include <stdbool.h>
     17 
     18 /* This value define the real size of the acpi structure
     19  * Our is bigger as we manage the \0 of strings
     20  * */
     21 #define ACPI_HEADER_SIZE 36
     22 
     23 enum { GAS_SYSTEM_MEMORY=0, GAS_SYSTEM_IO=1 };
     24 
     25 /* Generic Address Structure (GAS) Format */
     26 typedef struct {
     27     /* address_space_id could be {GAS_SYSTEM_MEMORY | GAS_SYSTEM_IO} */
     28     uint8_t address_space_id;
     29     uint8_t register_bit_width;
     30     uint8_t register_bit_offset;
     31     uint8_t reserved;
     32     uint64_t address;
     33 } __attribute__ ((packed)) s_gas;
     34 
     35 typedef struct {
     36     uint8_t signature[4 + 1];
     37     uint32_t length;
     38     uint8_t revision;
     39     uint8_t checksum;
     40     uint8_t oem_id[6 + 1];
     41     uint8_t oem_table_id[8 + 1];
     42     uint32_t oem_revision;
     43     uint8_t creator_id[4 + 1];
     44     uint32_t creator_revision;
     45 } s_acpi_description_header;
     46 
     47 #endif
     48