diff --git a/repos/ports/include/noux_session/sysio.h b/repos/ports/include/noux_session/sysio.h index 82b96bf6af..a8bd724e06 100644 --- a/repos/ports/include/noux_session/sysio.h +++ b/repos/ports/include/noux_session/sysio.h @@ -54,7 +54,7 @@ struct Noux::Sysio enum { CHUNK_SIZE = 64*1024 }; typedef char Chunk[CHUNK_SIZE]; - enum { ARGS_MAX_LEN = 5*1024 }; + enum { ARGS_MAX_LEN = 16*1024 }; typedef char Args[ARGS_MAX_LEN]; enum { ENV_MAX_LEN = 6*1024 }; diff --git a/repos/ports/src/lib/libc_noux/plugin.cc b/repos/ports/src/lib/libc_noux/plugin.cc index 55b220f467..a1385f143d 100644 --- a/repos/ports/src/lib/libc_noux/plugin.cc +++ b/repos/ports/src/lib/libc_noux/plugin.cc @@ -2278,7 +2278,7 @@ void Plugin::init(Genode::Env &env) sigemptyset(&signal_mask); /* copy command-line arguments from 'args' ROM dataspace */ - enum { MAX_ARGS = 256, ARG_BUF_SIZE = 4096UL }; + enum { MAX_ARGS = 256, ARG_BUF_SIZE = sizeof(Noux::Sysio::Args) }; static char *argv[MAX_ARGS]; static char arg_buf[ARG_BUF_SIZE]; { diff --git a/repos/ports/src/noux/child.h b/repos/ports/src/noux/child.h index f24db9d67e..732f3b6b28 100644 --- a/repos/ports/src/noux/child.h +++ b/repos/ports/src/noux/child.h @@ -146,7 +146,7 @@ class Noux::Child : public Rpc_object, * Entrypoint used to serve the RPC interfaces of the * locally-provided services */ - enum { STACK_SIZE = 8*1024*sizeof(long) }; + enum { STACK_SIZE = 64*1024 }; Rpc_entrypoint _ep { &_env.pd(), STACK_SIZE, "noux_process", false }; Pd_session &_ref_pd; @@ -194,6 +194,8 @@ class Noux::Child : public Rpc_object, /** * Command line arguments */ + enum { ARGS_DS_SIZE = sizeof(Sysio::Args) }; + Args_dataspace _args; /** @@ -242,8 +244,6 @@ class Noux::Child : public Rpc_object, throw Invalid_fd(); } - enum { ARGS_DS_SIZE = 4096 }; - /** * Let specified child inherit our file descriptors */