summaryrefslogtreecommitdiff
path: root/src/arch/amd64/acpi.c
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-02-01 12:48:55 -0500
committerFreya Murphy <freya@freyacat.org>2024-02-01 12:49:44 -0500
commit192a4ccd6bbc2239f047f782a05e888990011e51 (patch)
tree2b3d8a194d3dd33a5d344b4ec6376dbdfdb3eb0c /src/arch/amd64/acpi.c
parentundo bad decisions (diff)
downloadcorn-192a4ccd6bbc2239f047f782a05e888990011e51.tar.gz
corn-192a4ccd6bbc2239f047f782a05e888990011e51.tar.bz2
corn-192a4ccd6bbc2239f047f782a05e888990011e51.zip
acpi, fix mboot memory map, fix kalloc, fix virtalloc node allocator, add kprintf, other changes
Diffstat (limited to 'src/arch/amd64/acpi.c')
-rw-r--r--src/arch/amd64/acpi.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/arch/amd64/acpi.c b/src/arch/amd64/acpi.c
index 83f2014..70c2f38 100644
--- a/src/arch/amd64/acpi.c
+++ b/src/arch/amd64/acpi.c
@@ -31,7 +31,7 @@ struct rsdp {
char oemid[6];
uint8_t revision;
uint32_t rsdt_addr;
-} __attribute__((packed));
+};
// eXtended system descriptor pointer
// ACPI 2.0
@@ -46,7 +46,7 @@ struct xsdp {
uint64_t xsdt_addr;
uint8_t extendeid_checksum;
uint8_t reserved[3];
-} __attribute__((packed));
+};
// root system descriptor table
// ACPI 1.0
@@ -161,10 +161,8 @@ static bool checksum(uint8_t *data, size_t len) {
}
static int read_s5_addr(struct acpi_state *state) {
- serial_out_str("a");
uintptr_t ptr = state->fadt.dsdt;
char *s5_addr = (void*) (ptr + 36);
- serial_out_str("a");
int dsdt_len = *((int*) (ptr+1)) - 36;
while (0 < dsdt_len--) {
@@ -256,6 +254,7 @@ int acpi_init_rsdt(struct rsdt *rsdt) {
int acpi_init_xsdt(struct xsdt *xsdt) {
xsdt = mmap(xsdt, sizeof(struct xsdt));
+ return -1;
state.dst.xsdt = xsdt;
state.version = 2;