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
chore: replacing obsolete SATA Specification Rev 1.0a with more recent Rev 3.2
[lunaix-os.git]
/
lunaix-os
/
kernel
/
proc0.c
diff --git
a/lunaix-os/kernel/proc0.c
b/lunaix-os/kernel/proc0.c
index 582dfdd41eeb3c9f4c907110238d113ee48347db..3a6ea62116aea40654d96c93ee97a39ac8c1167f 100644
(file)
--- a/
lunaix-os/kernel/proc0.c
+++ b/
lunaix-os/kernel/proc0.c
@@
-12,6
+12,7
@@
#include <stddef.h>
#include <hal/acpi/acpi.h>
#include <stddef.h>
#include <hal/acpi/acpi.h>
+#include <hal/ahci.h>
#include <hal/apic.h>
#include <hal/ioapic.h>
#include <hal/pci.h>
#include <hal/apic.h>
#include <hal/ioapic.h>
#include <hal/pci.h>
@@
-121,7
+122,9
@@
init_platform()
clock_init();
ps2_kbd_init();
pci_init();
clock_init();
ps2_kbd_init();
pci_init();
+ ahci_init();
pci_print_device();
pci_print_device();
+ ahci_list_device();
syscall_install();
syscall_install();
@@
-172,6
+175,8
@@
__do_reserved_memory(int unlock)
break;
}
vmm_set_mapping(PD_REFERENCED, _pa, _pa, PG_PREM_R, VMAP_NULL);
break;
}
vmm_set_mapping(PD_REFERENCED, _pa, _pa, PG_PREM_R, VMAP_NULL);
+ pmm_mark_page_occupied(
+ KERNEL_PID, _pa >> PG_SIZE_BITS, PP_FGLOCKED);
}
// Save the progress for later unmapping.
mmaps[i].len_low = j * PG_SIZE;
}
// Save the progress for later unmapping.
mmaps[i].len_low = j * PG_SIZE;
@@
-179,6
+184,9
@@
__do_reserved_memory(int unlock)
for (; j < pg_num; j++) {
uintptr_t _pa = pa + (j << PG_SIZE_BITS);
vmm_del_mapping(PD_REFERENCED, _pa);
for (; j < pg_num; j++) {
uintptr_t _pa = pa + (j << PG_SIZE_BITS);
vmm_del_mapping(PD_REFERENCED, _pa);
+ if (mmap.type == MULTIBOOT_MEMORY_ACPI_RECLAIMABLE) {
+ pmm_mark_page_free(_pa >> PG_SIZE_BITS);
+ }
}
}
}
}
}
}