1.1 --- a/libexec/include/exec/process_creating.h Thu Mar 23 15:42:39 2023 +0100
1.2 +++ b/libexec/include/exec/process_creating.h Fri Mar 24 00:46:26 2023 +0100
1.3 @@ -27,6 +27,7 @@
1.4 #include <exec/external_pager.h>
1.5 #include <exec/memory.h>
1.6 #include <exec/process.h>
1.7 +#include <exec/process_monitor.h>
1.8 #include <ipc/map.h>
1.9
1.10
1.11 @@ -43,9 +44,10 @@
1.12 const char *_rm_filename;
1.13 file_t *_rm_file;
1.14
1.15 - /* External pager configuration. */
1.16 + /* External pager and process monitor. */
1.17
1.18 ExternalPager *_exec_pager = NULL;
1.19 + ProcessMonitor *_monitor = NULL;
1.20
1.21 /* Process construction. */
1.22
1.23 @@ -62,7 +64,7 @@
1.24 /* IPC gate for communication within the created task, plus allocated
1.25 capability. */
1.26
1.27 - l4_cap_idx_t _ipc_gate, _ipc_gate_cap;
1.28 + l4_cap_idx_t _internal_pager, _mapped_internal_pager;
1.29
1.30 /* Utility methods. */
1.31
1.32 @@ -74,9 +76,11 @@
1.33
1.34 long init_external_pager(l4_cap_idx_t *pager);
1.35
1.36 - long configure_task(l4_cap_idx_t pager);
1.37 + long init_process_monitor(l4_cap_idx_t *monitor);
1.38
1.39 - long create_ipc_gate();
1.40 + long configure_task();
1.41 +
1.42 + long allocate_internal_pager();
1.43
1.44 void init_region(struct exec_region *regions,
1.45 struct ipc_mapped_cap *mapped_caps,
1.46 @@ -84,7 +88,7 @@
1.47
1.48 long start_region_mapper(l4_cap_idx_t pager);
1.49
1.50 - long start_program(int argc, const char *argv[]);
1.51 + long start_program(l4_cap_idx_t monitor, int argc, const char *argv[]);
1.52
1.53 public:
1.54 explicit ProcessCreating(const char *rm_filename, file_t *rm_file);