From 31d829d388824c6795009afa55610ea5f5a22b0c Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Thu, 16 Nov 2006 12:43:11 -0800 Subject: Implement current working directory for LiveProcesses --HG-- extra : convert_revision : a2d3cf29ab65c61af27d82a8c421a41a19fd5aeb --- src/arch/alpha/linux/process.cc | 3 ++- src/arch/alpha/linux/process.hh | 1 + src/arch/alpha/process.cc | 3 ++- src/arch/alpha/process.hh | 1 + src/arch/alpha/tru64/process.cc | 3 ++- src/arch/alpha/tru64/process.hh | 1 + 6 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/arch/alpha') diff --git a/src/arch/alpha/linux/process.cc b/src/arch/alpha/linux/process.cc index 56342dbc5..f7d946e2e 100644 --- a/src/arch/alpha/linux/process.cc +++ b/src/arch/alpha/linux/process.cc @@ -576,6 +576,7 @@ AlphaLinuxProcess::AlphaLinuxProcess(const std::string &name, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, @@ -583,7 +584,7 @@ AlphaLinuxProcess::AlphaLinuxProcess(const std::string &name, uint64_t _pid, uint64_t _ppid) : AlphaLiveProcess(name, objFile, system, stdin_fd, stdout_fd, - stderr_fd, argv, envp, _uid, _euid, _gid, _egid, _pid, _ppid), + stderr_fd, argv, envp, cwd, _uid, _euid, _gid, _egid, _pid, _ppid), Num_Syscall_Descs(sizeof(syscallDescs) / sizeof(SyscallDesc)) { //init_regs->intRegFile[0] = 0; diff --git a/src/arch/alpha/linux/process.hh b/src/arch/alpha/linux/process.hh index b23904844..2076f6339 100644 --- a/src/arch/alpha/linux/process.hh +++ b/src/arch/alpha/linux/process.hh @@ -46,6 +46,7 @@ class AlphaLinuxProcess : public AlphaLiveProcess int stdin_fd, int stdout_fd, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, uint64_t _egid, uint64_t _pid, uint64_t _ppid); diff --git a/src/arch/alpha/process.cc b/src/arch/alpha/process.cc index 9e360e80f..85619e493 100644 --- a/src/arch/alpha/process.cc +++ b/src/arch/alpha/process.cc @@ -43,10 +43,11 @@ using namespace std; AlphaLiveProcess::AlphaLiveProcess(const std::string &nm, ObjectFile *objFile, System *_system, int stdin_fd, int stdout_fd, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, uint64_t _egid, uint64_t _pid, uint64_t _ppid) : LiveProcess(nm, objFile, _system, stdin_fd, stdout_fd, stderr_fd, - argv, envp, _uid, _euid, _gid, _egid, _pid, _ppid) + argv, envp, cwd, _uid, _euid, _gid, _egid, _pid, _ppid) { brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize(); brk_point = roundUp(brk_point, VMPageSize); diff --git a/src/arch/alpha/process.hh b/src/arch/alpha/process.hh index c4aeb1885..8eede502a 100644 --- a/src/arch/alpha/process.hh +++ b/src/arch/alpha/process.hh @@ -47,6 +47,7 @@ class AlphaLiveProcess : public LiveProcess System *_system, int stdin_fd, int stdout_fd, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, uint64_t _egid, uint64_t _pid, uint64_t _ppid); diff --git a/src/arch/alpha/tru64/process.cc b/src/arch/alpha/tru64/process.cc index 55b8ebf8b..a1f02b16c 100644 --- a/src/arch/alpha/tru64/process.cc +++ b/src/arch/alpha/tru64/process.cc @@ -581,11 +581,12 @@ AlphaTru64Process::AlphaTru64Process(const std::string &name, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, uint64_t _egid, uint64_t _pid, uint64_t _ppid) : AlphaLiveProcess(name, objFile, system, stdin_fd, stdout_fd, - stderr_fd, argv, envp, _uid, _euid, _gid, _egid, _pid, _ppid), + stderr_fd, argv, envp, cwd, _uid, _euid, _gid, _egid, _pid, _ppid), Num_Syscall_Descs(sizeof(syscallDescs) / sizeof(SyscallDesc)), Num_Mach_Syscall_Descs(sizeof(machSyscallDescs) / sizeof(SyscallDesc)) { diff --git a/src/arch/alpha/tru64/process.hh b/src/arch/alpha/tru64/process.hh index 23429dad3..f5643c0b9 100644 --- a/src/arch/alpha/tru64/process.hh +++ b/src/arch/alpha/tru64/process.hh @@ -45,6 +45,7 @@ class AlphaTru64Process : public AlphaLiveProcess int stdin_fd, int stdout_fd, int stderr_fd, std::vector &argv, std::vector &envp, + const std::string &cwd, uint64_t _uid, uint64_t _euid, uint64_t _gid, uint64_t _egid, uint64_t _pid, uint64_t _ppid); -- cgit v1.2.3