2023-03-11 09:36:55 +00:00
|
|
|
// This file is part of noxos and licensed under the MIT open source license
|
|
|
|
|
|
|
|
#ifndef NOX_RSDP_H
|
|
|
|
#define NOX_RSDP_H
|
|
|
|
|
|
|
|
#include "utils/stdtypes.h"
|
|
|
|
|
|
|
|
typedef struct {
|
2023-03-11 10:04:47 +00:00
|
|
|
char signature [8];
|
2023-03-11 09:36:55 +00:00
|
|
|
uint8_t checksum;
|
2023-03-11 10:04:47 +00:00
|
|
|
char oem_id [6];
|
2023-03-11 09:36:55 +00:00
|
|
|
uint8_t revision;
|
|
|
|
uint32_t rsdt_address;
|
|
|
|
} __attribute__((packed)) rsdp_descriptor_v1_T;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
rsdp_descriptor_v1_T descriptor_v1;
|
|
|
|
uint32_t length;
|
|
|
|
uint64_t xsdt_address;
|
|
|
|
uint8_t checksum_extended;
|
|
|
|
uint8_t reserved [3];
|
|
|
|
} __attribute__((packed)) rsdp_descriptor_v2_T;
|
|
|
|
|
2023-03-11 12:25:48 +00:00
|
|
|
bool rsdp_descriptor_v1_verify(rsdp_descriptor_v1_T* descriptor);
|
|
|
|
bool rsdp_descriptor_v2_verify(rsdp_descriptor_v2_T* descriptor);
|
|
|
|
|
2023-03-11 09:36:55 +00:00
|
|
|
#endif //NOX_RSDP_H
|