From 53e777d6838ac3ca80e6557626f9e99fd93dd0f7 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Fri, 7 Aug 2015 09:59:13 +0100 Subject: base: Declare a type for context IDs Context IDs used to be declared as ad hoc (usually as int). This changeset introduces a typedef for ContextIDs and a constant for invalid context IDs. --- src/sim/process.hh | 4 ++-- src/sim/system.cc | 8 ++++---- src/sim/system.hh | 7 ++++--- 3 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src/sim') diff --git a/src/sim/process.hh b/src/sim/process.hh index 82a84a935..f509b81c7 100644 --- a/src/sim/process.hh +++ b/src/sim/process.hh @@ -75,7 +75,7 @@ class Process : public SimObject System *system; // thread contexts associated with this process - std::vector contextIds; + std::vector contextIds; // number of CPUs (esxec contexts, really) assigned to this process. unsigned int numCpus() { return contextIds.size(); } @@ -160,7 +160,7 @@ class Process : public SimObject // After getting registered with system object, tell process which // system-wide context id it is assigned. - void assignThreadContext(int context_id) + void assignThreadContext(ContextID context_id) { contextIds.push_back(context_id); } diff --git a/src/sim/system.cc b/src/sim/system.cc index c5e2e0b96..d0418d99b 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -209,11 +209,11 @@ bool System::breakpoint() */ int rgdb_wait = -1; -int -System::registerThreadContext(ThreadContext *tc, int assigned) +ContextID +System::registerThreadContext(ThreadContext *tc, ContextID assigned) { int id; - if (assigned == -1) { + if (assigned == InvalidContextID) { for (id = 0; id < threadContexts.size(); id++) { if (!threadContexts[id]) break; @@ -305,7 +305,7 @@ System::initState() } void -System::replaceThreadContext(ThreadContext *tc, int context_id) +System::replaceThreadContext(ThreadContext *tc, ContextID context_id) { if (context_id >= threadContexts.size()) { panic("replaceThreadContext: bad id, %d >= %d\n", diff --git a/src/sim/system.hh b/src/sim/system.hh index 97d271d3a..634c78a6a 100644 --- a/src/sim/system.hh +++ b/src/sim/system.hh @@ -197,7 +197,7 @@ class System : public MemObject std::vector threadContexts; int _numContexts; - ThreadContext *getThreadContext(ThreadID tid) + ThreadContext *getThreadContext(ContextID tid) { return threadContexts[tid]; } @@ -514,8 +514,9 @@ class System : public MemObject /// @return Starting address of first page Addr allocPhysPages(int npages); - int registerThreadContext(ThreadContext *tc, int assigned=-1); - void replaceThreadContext(ThreadContext *tc, int context_id); + ContextID registerThreadContext(ThreadContext *tc, + ContextID assigned = InvalidContextID); + void replaceThreadContext(ThreadContext *tc, ContextID context_id); void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; -- cgit v1.2.3