* (C) 2004 SUSE LINUX AG
*
* The ACPI table structs are based on the Linux kernel sources.
- *
- */
-/* ACPI FADT & FACS added by Nick Barker <nick.barker9@btinternet.com>
+ * ACPI FADT & FACS added by Nick Barker <nick.barker9@btinternet.com>
* those parts (C) 2004 Nick Barker
*/
#if HAVE_ACPI_TABLES==1
#include <stdint.h>
-typedef unsigned long long u64;
+
+/* 0 = S0, 1 = S1 ...*/
+extern u8 acpi_slp_type;
#define RSDP_SIG "RSD PTR " /* RSDT Pointer signature */
#define RSDP_NAME "RSDP"
#define SRAT_NAME "SRAT"
#define SLIT_NAME "SLIT"
#define SSDT_NAME "SSDT"
+#define FACS_NAME "FACS"
+#define FADT_NAME "FACP"
#define RSDT_TABLE "RSDT "
#define HPET_TABLE "AMD64 "
unsigned long write_acpi_tables(unsigned long addr);
unsigned long acpi_fill_madt(unsigned long current);
unsigned long acpi_fill_mcfg(unsigned long current);
-unsigned long acpi_fill_srat(unsigned long current);
+unsigned long acpi_fill_srat(unsigned long current);
+unsigned long acpi_fill_slit(unsigned long current);
unsigned long acpi_fill_ssdt_generator(unsigned long current, char *oem_table_id);
void acpi_create_ssdt_generator(acpi_header_t *ssdt, char *oem_table_id);
void acpi_create_fadt(acpi_fadt_t *fadt,acpi_facs_t *facs,void *dsdt);
void acpi_write_rsdt(acpi_rsdt_t *rsdt);
void acpi_write_rsdp(acpi_rsdp_t *rsdp, acpi_rsdt_t *rsdt);
+void *acpi_find_wakeup_vector(void);
+void *acpi_get_wakeup_rsdp(void);
+extern void acpi_jmp_to_realm_wakeup(u32 linear_addr);
+void acpi_jump_to_wakeup(void *wakeup_addr);
+
+unsigned long acpi_add_ssdt_pstates(acpi_rsdt_t *rsdt, unsigned long current);
#define ACPI_WRITE_MADT_IOAPIC(dev,id) \
do { \