1.1 --- a/libexec/lib/src/process_creating.cc Mon Mar 06 18:30:22 2023 +0100
1.2 +++ b/libexec/lib/src/process_creating.cc Mon Mar 06 19:12:48 2023 +0100
1.3 @@ -42,8 +42,6 @@
1.4 ProcessCreating::ProcessCreating(const char *rm_filename)
1.5 : _rm_filename(rm_filename)
1.6 {
1.7 - _rm_stack = new ExplicitSegment(Utcb_area_start - initial_stack_size, initial_stack_size, L4_FPAGE_RW);
1.8 - _program_stack = new ExplicitSegment(Utcb_area_start - initial_stack_size * 2, initial_stack_size, L4_FPAGE_RW);
1.9 }
1.10
1.11 /* Initialise the memory segments of the region mapper. These are mapped into
1.12 @@ -57,6 +55,7 @@
1.13 if (err)
1.14 return err;
1.15
1.16 + _rm_stack = new ExplicitSegment(Utcb_area_start - initial_stack_size, initial_stack_size, L4_FPAGE_RW);
1.17 return _rm_stack->allocate(true);
1.18 }
1.19
1.20 @@ -71,6 +70,7 @@
1.21 if (err)
1.22 return err;
1.23
1.24 + _program_stack = new ExplicitSegment(Utcb_area_start - initial_stack_size * 2, initial_stack_size, L4_FPAGE_RW);
1.25 return _program_stack->allocate(true);
1.26 }
1.27
1.28 @@ -94,6 +94,8 @@
1.29 /* Include the region mapper's stack region. */
1.30
1.31 _exec_pager->add(_rm_stack->region());
1.32 + _exec_pager->set_payload(_rm_payload);
1.33 + _exec_pager->set_stack(_rm_stack);
1.34
1.35 /* Start the pager in a separate thread. */
1.36