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
Add FADT check for presence of i8042 controller.
[lunaix-os.git]
/
lunaix-os
/
kernel
/
mm
/
pmm.c
diff --git
a/lunaix-os/kernel/mm/pmm.c
b/lunaix-os/kernel/mm/pmm.c
index 47087fdd3dad383b518d547137e9a1a68162f67e..dcc70b03aa14522fba1538fe414c5042536c6197 100644
(file)
--- a/
lunaix-os/kernel/mm/pmm.c
+++ b/
lunaix-os/kernel/mm/pmm.c
@@
-13,9
+13,9
@@
uint32_t leading_shifts = \
(page_count + offset) < 8 ? page_count : 8 - offset;
uint32_t leading_shifts = \
(page_count + offset) < 8 ? page_count : 8 - offset;
-uint8_t pm_bitmap[PM_BMP_MAX_SIZE];
+
static
uint8_t pm_bitmap[PM_BMP_MAX_SIZE];
-uintptr_t max_pg;
+
static
uintptr_t max_pg;
// ... |xxxx xxxx |
// ... |-->|
// ... |xxxx xxxx |
// ... |-->|
@@
-93,7
+93,7
@@
void*
pmm_alloc_page()
{
// Next fit approach. Maximize the throughput!
pmm_alloc_page()
{
// Next fit approach. Maximize the throughput!
- uintptr_t good_page_found = NULL;
+ uintptr_t good_page_found =
(uintptr_t)
NULL;
size_t old_pg_ptr = pg_lookup_ptr;
size_t upper_lim = max_pg;
uint8_t chunk = 0;
size_t old_pg_ptr = pg_lookup_ptr;
size_t upper_lim = max_pg;
uint8_t chunk = 0;
@@
-128,7
+128,7
@@
pmm_alloc_page()
int
pmm_free_page(void* page)
{
int
pmm_free_page(void* page)
{
- //
TODO: Add kernel reserved memory page check
+ //
XXX: Add kernel reserved memory page check or simply ownership check?
uint32_t pg = (uintptr_t)page >> 12;
if (pg && pg < max_pg)
{
uint32_t pg = (uintptr_t)page >> 12;
if (pg && pg < max_pg)
{