2023-03-22 12:08:57 +00:00
|
|
|
// This file is part of noxos and licensed under the MIT open source license
|
|
|
|
|
|
|
|
#ifndef NOX_FADT_H
|
|
|
|
#define NOX_FADT_H
|
|
|
|
|
2023-05-28 19:06:06 +00:00
|
|
|
#include "drivers/builtin/acpi/acpi.h"
|
2023-03-22 12:08:57 +00:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
acpi_sdt_header_T header;
|
|
|
|
uint32_t firmware_control;
|
|
|
|
uint32_t dsdt;
|
|
|
|
uint8_t reserved;
|
|
|
|
uint8_t preferred_power_management_profile;
|
|
|
|
uint16_t sci_interrupt;
|
|
|
|
uint32_t smi_command_port;
|
|
|
|
uint8_t apci_enable;
|
|
|
|
uint8_t apci_disable;
|
|
|
|
uint8_t s4_bios_request;
|
|
|
|
uint8_t pstate_control;
|
|
|
|
uint32_t pm1a_event_block;
|
|
|
|
uint32_t pm1b_event_block;
|
|
|
|
uint32_t pm1a_control_block;
|
|
|
|
uint32_t pm1b_control_block;
|
|
|
|
uint32_t pm2_control_block;
|
|
|
|
uint32_t pm_timer_block;
|
|
|
|
uint32_t gpe0_block;
|
|
|
|
uint32_t gpe1_block;
|
|
|
|
uint8_t pm1_event_length;
|
|
|
|
uint8_t pm1_control_length;
|
|
|
|
uint8_t pm2_control_length;
|
|
|
|
uint8_t pm_timer_length;
|
|
|
|
uint8_t gpe0_length;
|
|
|
|
uint8_t gpe1_length;
|
|
|
|
uint8_t gpe1_base;
|
|
|
|
uint8_t c_state_control;
|
|
|
|
uint16_t c2_worst_latency;
|
|
|
|
uint16_t c3_worst_latency;
|
|
|
|
uint16_t flush_size;
|
|
|
|
uint16_t flush_stride;
|
|
|
|
uint8_t duty_offset;
|
|
|
|
uint8_t duty_width;
|
|
|
|
uint8_t day_alarm;
|
|
|
|
uint8_t month_alarm;
|
|
|
|
uint8_t century;
|
|
|
|
uint16_t ia_boot_architecture_flags;
|
|
|
|
uint8_t reserved_2;
|
|
|
|
uint32_t flags;
|
|
|
|
acpi_gas_T reset_register;
|
|
|
|
uint8_t reset_value;
|
|
|
|
uint8_t reserved_3[3];
|
|
|
|
uint64_t x_firmware_control;
|
|
|
|
uint64_t x_dsdt;
|
|
|
|
acpi_gas_T x_pm1a_event_block;
|
|
|
|
acpi_gas_T x_pm1b_event_block;
|
|
|
|
acpi_gas_T x_pm1a_control_block;
|
|
|
|
acpi_gas_T x_pm1b_control_block;
|
|
|
|
acpi_gas_T x_pm2_control_block;
|
|
|
|
acpi_gas_T x_pm_timer_block;
|
|
|
|
acpi_gas_T x_gpe0_block;
|
|
|
|
acpi_gas_T x_gpe1_block;
|
|
|
|
acpi_gas_T sleep_control_register;
|
|
|
|
acpi_gas_T sleep_status_register;
|
|
|
|
uint64_t hypervisor_vendor_identity;
|
|
|
|
} __attribute__((packed)) acpi_fadt_T;
|
|
|
|
|
|
|
|
extern acpi_fadt_T* g_acpi_table_fadt;
|
|
|
|
|
|
|
|
#endif //NOX_FADT_H
|