aboutsummaryrefslogtreecommitdiff
path: root/kern/bootstrap.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2016-01-23 21:30:07 +0100
committerRichard Braun <rbraun@sceen.net>2016-01-23 21:30:07 +0100
commit8bde80c03f475f06b62962905dc6766f5bc28c4c (patch)
tree28c0dd9f3b460b09ce1d9f8e7926b02bb93576b1 /kern/bootstrap.c
parentbee3f0799656116cee095f79f6aa91d18157c0f0 (diff)
parente835160b6b95f3b904fbc429392a63be1e4ed6b8 (diff)
downloadgnumach-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.c16
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