summaryrefslogtreecommitdiff
path: root/libdiskfs/boot-start.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1994-12-11 01:05:20 +0000
committerRoland McGrath <roland@gnu.org>1994-12-11 01:05:20 +0000
commit20247fb63772e3e2f86996cc0d63bd589712c8a3 (patch)
tree84a999cba10c1798de059875cc05fb3fe9d609ea /libdiskfs/boot-start.c
parentd6efb23d9ff064a92970bbd1bb74024925e3a6e5 (diff)
(start_execserver): When aligning bss size for vm_allocate, don't include
bss start alignment fixup offset.
Diffstat (limited to 'libdiskfs/boot-start.c')
-rw-r--r--libdiskfs/boot-start.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libdiskfs/boot-start.c b/libdiskfs/boot-start.c
index 62c2df97..d70d8599 100644
--- a/libdiskfs/boot-start.c
+++ b/libdiskfs/boot-start.c
@@ -516,8 +516,14 @@ start_execserver (void)
err = vm_protect (newt, 0, trunc_page (execserver_text_size) + 0x10000, 0,
VM_PROT_READ | VM_PROT_EXECUTE);
- bssloc = 0x10000 + bufsiz;
- err = vm_allocate (newt, &bssloc, round_page (execserver_bss_size), 0);
+ bssloc = trunc_page (0x10000 + execserver_text_size + execserver_data_size);
+ err = vm_allocate (newt, &bssloc,
+ round_page (0x10000 +
+ execserver_text_size +
+ execserver_data_size +
+ execserver_bss_size -
+ bssloc),
+ 0);
err = thread_create (newt, &newthd);
err = mach_setup_thread (newt, newthd, (void *) execserver_start,