diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-03-02 20:30:55 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-03-02 20:30:55 +0100 |
| commit | fbc2cc52c8a38c3c63a34f5547ba7c4209a667ac (patch) | |
| tree | 985e3b96308123dc1771abfc30e9fe4f8daac5f4 /kernel/src/apic/madt.c | |
| parent | 1e1c00c09991846257af4c8e50a177178355d986 (diff) | |
scheduling usermode processes & code refactoring
Diffstat (limited to 'kernel/src/apic/madt.c')
| -rw-r--r-- | kernel/src/apic/madt.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/src/apic/madt.c b/kernel/src/apic/madt.c index 2ddf90f..d45b1cb 100644 --- a/kernel/src/apic/madt.c +++ b/kernel/src/apic/madt.c @@ -66,25 +66,28 @@ void madt_parse_lapic_addr_ovr(uint64_t *addr) void parse_madt() { uint64_t *madt_addr = find_sys_table_addr("APIC"); + struct MADT *madt; + size_t curr_size; + uint8_t type; + uint8_t len; if (madt_addr == NULL) { printf("MADT NOT FOUND\n"); return; } - struct MADT *madt = (struct MADT *)kalloc(sizeof(struct MADT)); + madt = (struct MADT *)kalloc(sizeof(struct MADT)); memcpy(madt, madt_addr, sizeof(struct MADT)); lapic_addr = madt->lapic_addr; - size_t curr_size; for (curr_size = sizeof(struct MADT); curr_size < madt->h.Length;) { struct MADT_type_header *m = (struct MADT_type_header *)kalloc( sizeof(struct MADT_type_header)); memcpy(m, (uint64_t *)((uint64_t)madt_addr + (uint64_t)curr_size), sizeof(struct MADT_type_header)); - uint8_t type = m->type; - uint8_t len = m->len; + type = m->type; + len = m->len; kfree(m); switch (type) { |
