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
refactor: more compact log message
[lunaix-os.git]
/
lunaix-os
/
hal
/
acpi
/
acpi.c
diff --git
a/lunaix-os/hal/acpi/acpi.c
b/lunaix-os/hal/acpi/acpi.c
index c6a566e47b713849f320920f74eeecd696bc0fdf..67f5adebcd0c0ccf4e0255b5575292e466cf7129 100644
(file)
--- a/
lunaix-os/hal/acpi/acpi.c
+++ b/
lunaix-os/hal/acpi/acpi.c
@@
-40,13
+40,16
@@
acpi_init(multiboot_info_t* mb_info)
(acpi_sdthdr_t*)((acpi_apic_t**)&(rsdt->entry))[i];
switch (sdthdr->signature) {
case ACPI_MADT_SIG:
(acpi_sdthdr_t*)((acpi_apic_t**)&(rsdt->entry))[i];
switch (sdthdr->signature) {
case ACPI_MADT_SIG:
+ kprintf(KINFO "MADT: %p\n", sdthdr);
madt_parse((acpi_madt_t*)sdthdr, ctx);
break;
case ACPI_FADT_SIG:
// FADT just a plain structure, no need to parse.
madt_parse((acpi_madt_t*)sdthdr, ctx);
break;
case ACPI_FADT_SIG:
// FADT just a plain structure, no need to parse.
+ kprintf(KINFO "FADT: %p\n", sdthdr);
ctx->fadt = *(acpi_fadt_t*)sdthdr;
break;
case ACPI_MCFG_SIG:
ctx->fadt = *(acpi_fadt_t*)sdthdr;
break;
case ACPI_MCFG_SIG:
+ kprintf(KINFO "MCFG: %p\n", sdthdr);
mcfg_parse(sdthdr, ctx);
break;
default:
mcfg_parse(sdthdr, ctx);
break;
default:
@@
-76,6
+79,16
@@
acpi_rsdp_validate(acpi_rsdp_t* rsdp)
return sum == 0;
}
return sum == 0;
}
+uint8_t
+acpi_gistranslate(uint8_t old_irq)
+{
+ if (old_irq >= 24) {
+ return old_irq;
+ }
+ acpi_intso_t* int_override = ctx->madt.irq_exception[old_irq];
+ return int_override ? (uint8_t)int_override->gsi : old_irq;
+}
+
#define VIRTUAL_BOX_PROBLEM
acpi_rsdp_t*
#define VIRTUAL_BOX_PROBLEM
acpi_rsdp_t*