summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-09-03 02:04:25 -0400
committerGabe Black <gblack@eecs.umich.edu>2006-09-03 02:04:25 -0400
commit96dabdc9b0fbffbdf6fb7099f21924f4702d6f91 (patch)
tree1b39602f62d8ea769a46370969f05f1657190324
parent14cc9baba59a7f93187933efd15f9cd1b94c25ed (diff)
downloadgem5-96dabdc9b0fbffbdf6fb7099f21924f4702d6f91.tar.xz
Added uid, euid, gid, egid, pid and ppid parameters to a live process.
--HG-- extra : convert_revision : 2101be8000bcdaf683730cfc079b4b78e34365d0
-rw-r--r--src/python/m5/objects/Process.py6
-rw-r--r--src/sim/process.cc14
-rw-r--r--src/sim/process.hh10
3 files changed, 29 insertions, 1 deletions
diff --git a/src/python/m5/objects/Process.py b/src/python/m5/objects/Process.py
index 0091d8654..0b44aac8b 100644
--- a/src/python/m5/objects/Process.py
+++ b/src/python/m5/objects/Process.py
@@ -11,6 +11,12 @@ class LiveProcess(Process):
cmd = VectorParam.String("command line (executable plus arguments)")
env = VectorParam.String('', "environment settings")
input = Param.String('cin', "filename for stdin")
+ uid = Param.Int(100, 'user id')
+ euid = Param.Int(100, 'effective user id')
+ gid = Param.Int(100, 'group id')
+ egid = Param.Int(100, 'effective group id')
+ pid = Param.Int(100, 'process id')
+ ppid = Param.Int(99, 'parent process id')
class AlphaLiveProcess(LiveProcess):
type = 'AlphaLiveProcess'
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 081a25976..20f7fec2d 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -460,6 +460,12 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(LiveProcess)
Param<string> output;
VectorParam<string> env;
SimObjectParam<System *> system;
+ Param<uint64_t> uid;
+ Param<uint64_t> euid;
+ Param<uint64_t> gid;
+ Param<uint64_t> egid;
+ Param<uint64_t> pid;
+ Param<uint64_t> ppid;
END_DECLARE_SIM_OBJECT_PARAMS(LiveProcess)
@@ -471,7 +477,13 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(LiveProcess)
INIT_PARAM(input, "filename for stdin (dflt: use sim stdin)"),
INIT_PARAM(output, "filename for stdout/stderr (dflt: use sim stdout)"),
INIT_PARAM(env, "environment settings"),
- INIT_PARAM(system, "system")
+ INIT_PARAM(system, "system"),
+ INIT_PARAM(uid, "user id"),
+ INIT_PARAM(euid, "effective user id"),
+ INIT_PARAM(gid, "group id"),
+ INIT_PARAM(egid, "effective group id"),
+ INIT_PARAM(pid, "process id"),
+ INIT_PARAM(ppid, "parent process id")
END_INIT_SIM_OBJECT_PARAMS(LiveProcess)
diff --git a/src/sim/process.hh b/src/sim/process.hh
index 763deb100..d64cc3cf1 100644
--- a/src/sim/process.hh
+++ b/src/sim/process.hh
@@ -75,6 +75,16 @@ 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
{