From 207abe647bd79845e6cc465461e631ef5f80c175 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 16 Mar 2012 18:22:06 +0100 Subject: [PATCH] Handle current working directory in Noux --- ports/src/noux/child.h | 2 ++ ports/src/noux/main.cc | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ports/src/noux/child.h b/ports/src/noux/child.h index 4b92cb981..23e3368c6 100644 --- a/ports/src/noux/child.h +++ b/ports/src/noux/child.h @@ -257,6 +257,7 @@ namespace Noux { Vfs *vfs, Args const &args, char const *env, + char const *pwd, Cap_session *cap_session, Service_registry &parent_services, Rpc_entrypoint &resources_ep, @@ -289,6 +290,7 @@ namespace Noux { _child(_binary_ds, _resources.ram.cap(), _resources.cpu.cap(), _resources.rm.cap(), &_entrypoint, &_child_policy) { + _env.pwd(pwd); _args.dump(); } diff --git a/ports/src/noux/main.cc b/ports/src/noux/main.cc index bfdc7ed42..397ee3579 100644 --- a/ports/src/noux/main.cc +++ b/ports/src/noux/main.cc @@ -154,7 +154,7 @@ bool Noux::Child::syscall(Noux::Session::Syscall sc) case SYSCALL_EXECVE: { - char const *env = "PWD=\"/\""; + char const *env = ""; char const *filename = _sysio->execve_in.filename; Child *child = new Child(filename, parent(), @@ -164,6 +164,7 @@ bool Noux::Child::syscall(Noux::Session::Syscall sc) Args(_sysio->execve_in.args, sizeof(_sysio->execve_in.args)), env, /* XXX */ + _env.pwd(), _cap_session, _parent_services, _resources.ep, @@ -288,7 +289,7 @@ bool Noux::Child::syscall(Noux::Session::Syscall sc) Genode::addr_t parent_cap_addr = _sysio->fork_in.parent_cap_addr; int new_pid = pid_allocator()->alloc(); - char const *env = "PWD=\"/\""; + char const *env = ""; /* * XXX To ease debugging, it would be useful to generate a @@ -302,6 +303,7 @@ bool Noux::Child::syscall(Noux::Session::Syscall sc) _vfs, _args, env, /* XXX */ + _env.pwd(), _cap_session, _parent_services, _resources.ep, @@ -524,6 +526,7 @@ int main(int argc, char **argv) &vfs, args_of_init_process(), env_string_of_init_process(), + "/", &cap, parent_services, resources_ep,