diff options
author | Richard Braun <rbraun@sceen.net> | 2016-01-23 21:30:07 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2016-01-23 21:30:07 +0100 |
commit | 8bde80c03f475f06b62962905dc6766f5bc28c4c (patch) | |
tree | 28c0dd9f3b460b09ce1d9f8e7926b02bb93576b1 /kern/bootstrap.c | |
parent | bee3f0799656116cee095f79f6aa91d18157c0f0 (diff) | |
parent | e835160b6b95f3b904fbc429392a63be1e4ed6b8 (diff) | |
download | gnumach-8bde80c03f475f06b62962905dc6766f5bc28c4c.tar.gz gnumach-8bde80c03f475f06b62962905dc6766f5bc28c4c.tar.bz2 gnumach-8bde80c03f475f06b62962905dc6766f5bc28c4c.zip |
Merge branch 'rbraun/vm_page'
Diffstat (limited to 'kern/bootstrap.c')
-rw-r--r-- | kern/bootstrap.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 249c605c..08362767 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -107,6 +107,20 @@ task_insert_send_right( return name; } +static void +free_bootstrap_pages(phys_addr_t start, phys_addr_t end) +{ + struct vm_page *page; + + while (start < end) + { + page = vm_page_lookup_pa(start); + assert(page != NULL); + vm_page_manage(page); + start += PAGE_SIZE; + } +} + void bootstrap_create(void) { int compat; @@ -265,7 +279,7 @@ void bootstrap_create(void) /* XXX we could free the memory used by the boot loader's descriptors and such. */ for (n = 0; n < boot_info.mods_count; n++) - vm_page_create(bmods[n].mod_start, bmods[n].mod_end); + free_bootstrap_pages(bmods[n].mod_start, bmods[n].mod_end); } static void |