summaryrefslogtreecommitdiff
path: root/src/sim/process.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-09-17 03:00:55 -0400
committerGabe Black <gblack@eecs.umich.edu>2006-09-17 03:00:55 -0400
commit30b87e90f8e3f6ffa16026f7776c6609fe3ada24 (patch)
treeb5e9cd853ea76982e5cb2e83e024592c3dc3886a /src/sim/process.hh
parente4fcef58518840c8191c468aff6d314175d68e21 (diff)
downloadgem5-30b87e90f8e3f6ffa16026f7776c6609fe3ada24.tar.xz
Finished changing how stat structures are translated, fixed the handling of various ids as LiveProcess parameters.
src/arch/alpha/linux/process.cc: src/arch/alpha/linux/process.hh: src/arch/alpha/process.cc: src/arch/alpha/process.hh: src/arch/alpha/tru64/process.cc: src/arch/alpha/tru64/process.hh: src/arch/mips/linux/process.cc: src/arch/mips/linux/process.hh: src/arch/mips/process.cc: src/arch/mips/process.hh: src/arch/sparc/linux/process.cc: src/arch/sparc/linux/process.hh: src/arch/sparc/process.cc: src/arch/sparc/process.hh: src/arch/sparc/solaris/process.cc: src/arch/sparc/solaris/process.hh: src/sim/process.cc: src/sim/process.hh: src/sim/syscall_emul.cc: src/sim/syscall_emul.hh: Changed Process to LiveProcess in syscall handlers and fixed the implementation of uid, euid, gid, egid, pid and ppid as LiveProcess parameters. src/kern/tru64/tru64.hh: Changed Process to LiveProcess in syscall handlers and fixed the implementation of uid, euid, gid, egid, pid and ppid as LiveProcess parameters. Also fit tru64 in with the new way to handle stat calls. --HG-- extra : convert_revision : 0198b838e5c09a730065dc6f018738145bc96269
Diffstat (limited to 'src/sim/process.hh')
-rw-r--r--src/sim/process.hh38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/sim/process.hh b/src/sim/process.hh
index d64cc3cf1..b2777170f 100644
--- a/src/sim/process.hh
+++ b/src/sim/process.hh
@@ -75,16 +75,6 @@ class Process : public SimObject
// number of CPUs (esxec contexts, really) assigned to this process.
unsigned int numCpus() { return threadContexts.size(); }
- // Id of the owner of the process
- uint64_t uid;
- uint64_t euid;
- uint64_t gid;
- uint64_t egid;
-
- // pid of the process and it's parent
- uint64_t pid;
- uint64_t ppid;
-
// record of blocked context
struct WaitRec
{
@@ -188,11 +178,32 @@ class LiveProcess : public Process
LiveProcess(const std::string &nm, ObjectFile *objFile,
System *_system, int stdin_fd, int stdout_fd, int stderr_fd,
std::vector<std::string> &argv,
- std::vector<std::string> &envp);
+ std::vector<std::string> &envp,
+ uint64_t _uid, uint64_t _euid,
+ uint64_t _gid, uint64_t _egid,
+ uint64_t _pid, uint64_t _ppid);
virtual void argsInit(int intSize, int pageSize);
+ // Id of the owner of the process
+ uint64_t __uid;
+ uint64_t __euid;
+ uint64_t __gid;
+ uint64_t __egid;
+
+ // pid of the process and it's parent
+ uint64_t __pid;
+ uint64_t __ppid;
+
public:
+
+ inline uint64_t uid() {return __uid;}
+ inline uint64_t euid() {return __euid;}
+ inline uint64_t gid() {return __gid;}
+ inline uint64_t egid() {return __egid;}
+ inline uint64_t pid() {return __pid;}
+ inline uint64_t ppid() {return __ppid;}
+
virtual void syscall(int64_t callnum, ThreadContext *tc);
virtual SyscallDesc* getDesc(int callnum) = 0;
@@ -205,7 +216,10 @@ class LiveProcess : public Process
int stdin_fd, int stdout_fd, int stderr_fd,
std::string executable,
std::vector<std::string> &argv,
- std::vector<std::string> &envp);
+ std::vector<std::string> &envp,
+ uint64_t _uid, uint64_t _euid,
+ uint64_t _gid, uint64_t _egid,
+ uint64_t _pid, uint64_t _ppid);
};