1.1 --- a/conf/dstest_fsaccess_stdin.cfg Sun May 26 22:16:53 2024 +0200
1.2 +++ b/conf/dstest_fsaccess_stdin.cfg Sun May 26 22:17:39 2024 +0200
1.3 @@ -49,6 +49,7 @@
1.4 l:startv({
1.5 caps = {
1.6 fsserver = ext2server_paulb,
1.7 + pipeserver = pipe_server,
1.8 prserver = process_server:svr(),
1.9 jdb = L4.Env.jdb, -- to set the server name
1.10 },
2.1 --- a/libexec/lib/src/process_creating.cc Sun May 26 22:16:53 2024 +0200
2.2 +++ b/libexec/lib/src/process_creating.cc Sun May 26 22:17:39 2024 +0200
2.3 @@ -332,6 +332,11 @@
2.4 l4_cap_idx_t prserver_cap = _process.allocate_cap();
2.5 l4_cap_idx_t prserver = l4re_env_get_cap(ENV_PROCESS_SERVER_NAME);
2.6
2.7 + /* Obtain the pipe server capability. */
2.8 +
2.9 + l4_cap_idx_t pipeserver_cap = _process.allocate_cap();
2.10 + l4_cap_idx_t pipeserver = l4re_env_get_cap(ENV_PIPE_SERVER_NAME);
2.11 +
2.12 /* Also reserve capabilities for the reader and writer. If the reader or
2.13 writer are invalid capabilities, these will not actually be transferred. */
2.14
2.15 @@ -343,6 +348,7 @@
2.16 struct ipc_mapped_cap program_mapped_caps[] = {
2.17 {fsserver_cap, fsserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
2.18 {prserver_cap, prserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
2.19 + {pipeserver_cap, pipeserver, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
2.20 {reader_cap, reader, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
2.21 {writer_cap, writer, L4_CAP_FPAGE_RWS, L4_FPAGE_C_OBJ_RIGHTS},
2.22 {L4_INVALID_CAP, L4_INVALID_CAP, 0, 0},
2.23 @@ -368,6 +374,7 @@
2.24 l4re_env_cap_entry_t program_init_caps[] = {
2.25 l4re_env_cap_entry_t(ENV_FILESYSTEM_SERVER_NAME, fsserver_cap, L4_CAP_FPAGE_RWS),
2.26 l4re_env_cap_entry_t(ENV_PROCESS_SERVER_NAME, prserver_cap, L4_CAP_FPAGE_RWS),
2.27 + l4re_env_cap_entry_t(ENV_PIPE_SERVER_NAME, pipeserver_cap, L4_CAP_FPAGE_RWS),
2.28 l4re_env_cap_entry_t(ENV_INPUT_STREAM_NAME, reader_cap, L4_CAP_FPAGE_R),
2.29 l4re_env_cap_entry_t(ENV_OUTPUT_STREAM_NAME, writer_cap, L4_CAP_FPAGE_W),
2.30 l4re_env_cap_entry_t()