1.1 --- a/libexec/lib/src/process_creating.cc Thu May 09 16:46:44 2024 +0200
1.2 +++ b/libexec/lib/src/process_creating.cc Fri May 10 14:46:04 2024 +0200
1.3 @@ -327,6 +327,11 @@
1.4 l4_cap_idx_t fsserver_cap = _process.allocate_cap();
1.5 l4_cap_idx_t fsserver = l4re_env_get_cap(ENV_FILESYSTEM_SERVER_NAME);
1.6
1.7 + /* Obtain the process server capability. */
1.8 +
1.9 + l4_cap_idx_t prserver_cap = _process.allocate_cap();
1.10 + l4_cap_idx_t prserver = l4re_env_get_cap(ENV_PROCESS_SERVER_NAME);
1.11 +
1.12 /* Also reserve capabilities for the reader and writer. If the reader or
1.13 writer are invalid capabilities, these will not actually be transferred. */
1.14
1.15 @@ -337,6 +342,7 @@
1.16
1.17 struct ipc_mapped_cap program_mapped_caps[] = {
1.18 {fsserver_cap, fsserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.19 + {prserver_cap, prserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.20 {reader_cap, reader, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.21 {writer_cap, writer, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.22 {L4_INVALID_CAP, L4_INVALID_CAP, 0, 0},
1.23 @@ -361,6 +367,7 @@
1.24
1.25 l4re_env_cap_entry_t program_init_caps[] = {
1.26 l4re_env_cap_entry_t(ENV_FILESYSTEM_SERVER_NAME, fsserver_cap, L4_CAP_FPAGE_RWS),
1.27 + l4re_env_cap_entry_t(ENV_PROCESS_SERVER_NAME, prserver_cap, L4_CAP_FPAGE_RWS),
1.28 l4re_env_cap_entry_t(ENV_INPUT_STREAM_NAME, reader_cap, L4_CAP_FPAGE_R),
1.29 l4re_env_cap_entry_t(ENV_OUTPUT_STREAM_NAME, writer_cap, L4_CAP_FPAGE_W),
1.30 l4re_env_cap_entry_t()