1.1 --- a/libexec/lib/src/process_creating.cc Sun May 26 22:16:53 2024 +0200
1.2 +++ b/libexec/lib/src/process_creating.cc Sun May 26 22:17:39 2024 +0200
1.3 @@ -332,6 +332,11 @@
1.4 l4_cap_idx_t prserver_cap = _process.allocate_cap();
1.5 l4_cap_idx_t prserver = l4re_env_get_cap(ENV_PROCESS_SERVER_NAME);
1.6
1.7 + /* Obtain the pipe server capability. */
1.8 +
1.9 + l4_cap_idx_t pipeserver_cap = _process.allocate_cap();
1.10 + l4_cap_idx_t pipeserver = l4re_env_get_cap(ENV_PIPE_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 @@ -343,6 +348,7 @@
1.16 struct ipc_mapped_cap program_mapped_caps[] = {
1.17 {fsserver_cap, fsserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.18 {prserver_cap, prserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
1.19 + {pipeserver_cap, pipeserver, 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 @@ -368,6 +374,7 @@
1.24 l4re_env_cap_entry_t program_init_caps[] = {
1.25 l4re_env_cap_entry_t(ENV_FILESYSTEM_SERVER_NAME, fsserver_cap, L4_CAP_FPAGE_RWS),
1.26 l4re_env_cap_entry_t(ENV_PROCESS_SERVER_NAME, prserver_cap, L4_CAP_FPAGE_RWS),
1.27 + l4re_env_cap_entry_t(ENV_PIPE_SERVER_NAME, pipeserver_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()