ref: update formatting
This commit is contained in:
parent
7d0155d8ce
commit
024407225c
16 changed files with 433 additions and 377 deletions
|
|
@ -1,15 +1,15 @@
|
|||
#pragma once
|
||||
|
||||
#include "util/number.h"
|
||||
#include "memory/pointer.h"
|
||||
#include "util/number.h"
|
||||
|
||||
namespace acpi {
|
||||
|
||||
constexpr uint32_t fold_signature(const char (&text)[5]) {
|
||||
return static_cast<uint32_t>(static_cast<uint8_t>(text[0]))
|
||||
| static_cast<uint32_t>(static_cast<uint8_t>(text[1])) << 8
|
||||
| static_cast<uint32_t>(static_cast<uint8_t>(text[2])) << 16
|
||||
| static_cast<uint32_t>(static_cast<uint8_t>(text[3])) << 24;
|
||||
return static_cast<uint32_t>(static_cast<uint8_t>(text[0])) |
|
||||
static_cast<uint32_t>(static_cast<uint8_t>(text[1])) << 8 |
|
||||
static_cast<uint32_t>(static_cast<uint8_t>(text[2])) << 16 |
|
||||
static_cast<uint32_t>(static_cast<uint8_t>(text[3])) << 24;
|
||||
}
|
||||
|
||||
enum class signature : uint32_t {
|
||||
|
|
@ -35,10 +35,10 @@ inline signature_text_t unfold_signature(uint32_t folded) {
|
|||
struct sdt_header_t {
|
||||
uint32_t signature;
|
||||
uint32_t length;
|
||||
uint8_t revision;
|
||||
uint8_t checksum;
|
||||
char oem_id[6];
|
||||
char oem_table_id[8];
|
||||
uint8_t revision;
|
||||
uint8_t checksum;
|
||||
char oem_id[6];
|
||||
char oem_table_id[8];
|
||||
uint32_t oem_revision;
|
||||
uint32_t creator_id;
|
||||
uint32_t creator_revision;
|
||||
|
|
@ -46,16 +46,16 @@ struct sdt_header_t {
|
|||
static_assert(sizeof(sdt_header_t) == 36);
|
||||
|
||||
struct rsdp_t {
|
||||
char signature[8];
|
||||
uint8_t checksum;
|
||||
char oem_id[6];
|
||||
uint8_t revision;
|
||||
char signature[8];
|
||||
uint8_t checksum;
|
||||
char oem_id[6];
|
||||
uint8_t revision;
|
||||
uint32_t rsdt_address;
|
||||
|
||||
uint32_t length;
|
||||
uint64_t xsdt_address;
|
||||
uint8_t extended_checksum;
|
||||
uint8_t reserved[3];
|
||||
uint8_t extended_checksum;
|
||||
uint8_t reserved[3];
|
||||
} __attribute__((packed));
|
||||
static_assert(sizeof(rsdp_t) == 36);
|
||||
|
||||
|
|
@ -80,17 +80,18 @@ struct Rsdp {
|
|||
private:
|
||||
template<typename Fn>
|
||||
static void dispatch(const sdt_header_t* header, Fn&& fn) {
|
||||
#define ACPI_DISPATCH(signature_enum, TableType) \
|
||||
case signature::signature_enum: \
|
||||
if constexpr (requires { fn(static_cast<const TableType*>(nullptr)); }) { \
|
||||
fn(reinterpret_cast<const TableType*>(header)); \
|
||||
return; \
|
||||
} \
|
||||
#define ACPI_DISPATCH(signature_enum, TableType) \
|
||||
case signature::signature_enum: \
|
||||
if constexpr (requires { fn(static_cast<const TableType*>(nullptr)); }) { \
|
||||
fn(reinterpret_cast<const TableType*>(header)); \
|
||||
return; \
|
||||
} \
|
||||
break;
|
||||
|
||||
switch (static_cast<signature>(header->signature)) {
|
||||
ACPI_DISPATCH(madt, madt_t)
|
||||
default: break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
#undef ACPI_DISPATCH
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue