git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Architectural Support: x86_64 (#37)
[lunaix-os.git]
/
lunaix-os
/
hal
/
acpi
/
parser
/
madt_parser.c
diff --git
a/lunaix-os/hal/acpi/parser/madt_parser.c
b/lunaix-os/hal/acpi/parser/madt_parser.c
index 8456b57ce9ee2efa54341f31a08aa0f9f3b72fdd..c0b059db14396b72b3ccf2e164c3334786ce9552 100644
(file)
--- a/
lunaix-os/hal/acpi/parser/madt_parser.c
+++ b/
lunaix-os/hal/acpi/parser/madt_parser.c
@@
-7,25
+7,25
@@
madt_parse(acpi_madt_t* madt, acpi_context* toc)
toc->madt.apic_addr = madt->apic_addr;
// FUTURE: make madt.{apic,ioapic} as array or linked list.
toc->madt.apic_addr = madt->apic_addr;
// FUTURE: make madt.{apic,ioapic} as array or linked list.
-
uint8_t* ics_start = (uint8_t*)((uintptr_t)madt + sizeof(acpi_madt_t)
);
-
uintptr_t ics_end = (uint
ptr_t)madt + madt->header.length;
+
ptr_t ics_start = (ptr_t)madt + sizeof(acpi_madt_t
);
+
ptr_t ics_end = (
ptr_t)madt + madt->header.length;
// Cosidering only one IOAPIC present (max 24 pins)
// Cosidering only one IOAPIC present (max 24 pins)
- // FIXME: use hash table instead
-
toc->madt.irq_exception = (acpi_intso_t
*)vcalloc(24, sizeof(acpi_intso_t*));
+ toc->madt.irq_exception =
+
(acpi_intso_t*
*)vcalloc(24, sizeof(acpi_intso_t*));
size_t so_idx = 0;
while (ics_start < ics_end) {
size_t so_idx = 0;
while (ics_start < ics_end) {
- acpi_ics_hdr_t* entry =
(acpi_ics_hdr_t*)ics_start
;
+ acpi_ics_hdr_t* entry =
__acpi_ics_hdr(ics_start)
;
switch (entry->type) {
case ACPI_MADT_LAPIC:
switch (entry->type) {
case ACPI_MADT_LAPIC:
- toc->madt.apic =
(acpi_apic_t*)entry
;
+ toc->madt.apic =
__acpi_apic(entry)
;
break;
case ACPI_MADT_IOAPIC:
break;
case ACPI_MADT_IOAPIC:
- toc->madt.ioapic =
(acpi_ioapic_t*)entry
;
+ toc->madt.ioapic =
__acpi_ioapic(entry)
;
break;
case ACPI_MADT_INTSO: {
break;
case ACPI_MADT_INTSO: {
- acpi_intso_t* intso_tbl =
(acpi_intso_t*)entry
;
+ acpi_intso_t* intso_tbl =
__acpi_intso(entry)
;
toc->madt.irq_exception[intso_tbl->source] = intso_tbl;
break;
}
toc->madt.irq_exception[intso_tbl->source] = intso_tbl;
break;
}