changeset e7f403b6b76f in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=e7f403b6b76f
description:
        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.

diffstat:

 src/base/types.hh                           |   4 ++++
 src/cpu/base_dyn_inst.hh                    |   2 +-
 src/cpu/checker/thread_context.hh           |   4 ++--
 src/cpu/minor/exec_context.hh               |   2 +-
 src/cpu/o3/thread_context.hh                |   2 +-
 src/cpu/thread_context.cc                   |   6 +++---
 src/cpu/thread_state.hh                     |   6 +++---
 src/dev/arm/gic_pl390.cc                    |  10 +++++-----
 src/dev/arm/gic_pl390.hh                    |   2 +-
 src/dev/arm/timer_cpulocal.cc               |   4 ++--
 src/dev/arm/vgic.cc                         |  10 +++++-----
 src/dev/arm/vgic.hh                         |   2 +-
 src/dev/sinic.cc                            |  12 ++++++------
 src/dev/sinic.hh                            |   8 ++++----
 src/dev/sparc/iob.cc                        |   4 ++--
 src/mem/abstract_mem.hh                     |   2 +-
 src/mem/cache/blk.hh                        |   2 +-
 src/mem/cache/cache_impl.hh                 |   3 ++-
 src/mem/physical.cc                         |   4 ++--
 src/mem/request.hh                          |   8 ++++----
 src/mem/ruby/slicc_interface/RubyRequest.hh |   4 ++--
 src/mem/ruby/system/Sequencer.cc            |   6 ++----
 src/sim/process.hh                          |   4 ++--
 src/sim/system.cc                           |   8 ++++----
 src/sim/system.hh                           |   7 ++++---
 25 files changed, 65 insertions(+), 61 deletions(-)

diffs (truncated from 545 to 300 lines):

diff -r 2c347b12cc9c -r e7f403b6b76f src/base/types.hh
--- a/src/base/types.hh Fri Aug 07 09:59:12 2015 +0100
+++ b/src/base/types.hh Fri Aug 07 09:59:13 2015 +0100
@@ -181,6 +181,10 @@
 typedef int16_t ThreadID;
 const ThreadID InvalidThreadID = (ThreadID)-1;
 
+/** Globally unique thread context ID */
+typedef int ContextID;
+const ContextID InvalidContextID = (ContextID)-1;
+
 /**
  * Port index/ID type, and a symbolic name for an invalid port id.
  */
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/base_dyn_inst.hh
--- a/src/cpu/base_dyn_inst.hh  Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/base_dyn_inst.hh  Fri Aug 07 09:59:13 2015 +0100
@@ -460,7 +460,7 @@
     MasterID masterId() const { return cpu->dataMasterId(); }
 
     /** Read this context's system-wide ID **/
-    int contextId() const { return thread->contextId(); }
+    ContextID contextId() const { return thread->contextId(); }
 
     /** Returns the fault type. */
     Fault getFault() const { return fault; }
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/checker/thread_context.hh
--- a/src/cpu/checker/thread_context.hh Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/checker/thread_context.hh Fri Aug 07 09:59:13 2015 +0100
@@ -96,9 +96,9 @@
 
     int cpuId() const { return actualTC->cpuId(); }
 
-    int contextId() const { return actualTC->contextId(); }
+    ContextID contextId() const { return actualTC->contextId(); }
 
-    void setContextId(int id)
+    void setContextId(ContextID id)
     {
        actualTC->setContextId(id);
        checkerTC->setContextId(id);
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/minor/exec_context.hh
--- a/src/cpu/minor/exec_context.hh     Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/minor/exec_context.hh     Fri Aug 07 09:59:13 2015 +0100
@@ -254,7 +254,7 @@
     unsigned int readStCondFailures() const { return 0; }
     void setStCondFailures(unsigned int st_cond_failures) {}
 
-    int contextId() { return thread.contextId(); }
+    ContextID contextId() { return thread.contextId(); }
     /* ISA-specific (or at least currently ISA singleton) functions */
 
     /* X86: TLB twiddling */
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/o3/thread_context.hh
--- a/src/cpu/o3/thread_context.hh      Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/o3/thread_context.hh      Fri Aug 07 09:59:13 2015 +0100
@@ -101,7 +101,7 @@
     /** Reads this CPU's Socket ID. */
     virtual uint32_t socketId() const { return cpu->socketId(); }
 
-    virtual int contextId() const { return thread->contextId(); }
+    virtual ContextID contextId() const { return thread->contextId(); }
 
     virtual void setContextId(int id) { thread->setContextId(id); }
 
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/thread_context.cc
--- a/src/cpu/thread_context.cc Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/thread_context.cc Fri Aug 07 09:59:13 2015 +0100
@@ -95,9 +95,9 @@
     if (id1 != id2)
         panic("CPU ids don't match, one: %d, two: %d", id1, id2);
 
-    id1 = one->contextId();
-    id2 = two->contextId();
-    if (id1 != id2)
+    const ContextID cid1 = one->contextId();
+    const ContextID cid2 = two->contextId();
+    if (cid1 != cid2)
         panic("Context ids don't match, one: %d, two: %d", id1, id2);
 
 
diff -r 2c347b12cc9c -r e7f403b6b76f src/cpu/thread_state.hh
--- a/src/cpu/thread_state.hh   Fri Aug 07 09:59:12 2015 +0100
+++ b/src/cpu/thread_state.hh   Fri Aug 07 09:59:13 2015 +0100
@@ -71,9 +71,9 @@
 
     uint32_t socketId() const { return baseCpu->socketId(); }
 
-    int contextId() const { return _contextId; }
+    ContextID contextId() const { return _contextId; }
 
-    void setContextId(int id) { _contextId = id; }
+    void setContextId(ContextID id) { _contextId = id; }
 
     void setThreadId(ThreadID id) { _threadId = id; }
 
@@ -153,7 +153,7 @@
     BaseCPU *baseCpu;
 
     // system wide HW context id
-    int _contextId;
+    ContextID _contextId;
 
     // Index of hardware thread context on the CPU that this represents.
     ThreadID _threadId;
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/arm/gic_pl390.cc
--- a/src/dev/arm/gic_pl390.cc  Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/arm/gic_pl390.cc  Fri Aug 07 09:59:13 2015 +0100
@@ -135,7 +135,7 @@
 {
     Addr daddr = pkt->getAddr() - distAddr;
 
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
 
     DPRINTF(GIC, "gic distributor read register %#x\n", daddr);
 
@@ -269,7 +269,7 @@
     Addr daddr = pkt->getAddr() - cpuAddr;
 
     assert(pkt->req->hasContextId());
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
     assert(ctx_id < sys->numRunningContexts());
 
     DPRINTF(GIC, "gic cpu read register %#x cpu context: %d\n", daddr,
@@ -356,7 +356,7 @@
     Addr daddr = pkt->getAddr() - distAddr;
 
     assert(pkt->req->hasContextId());
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
 
     uint32_t pkt_data M5_VAR_USED;
     switch (pkt->getSize())
@@ -496,7 +496,7 @@
     Addr daddr = pkt->getAddr() - cpuAddr;
 
     assert(pkt->req->hasContextId());
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
     IAR iar;
 
     DPRINTF(GIC, "gic cpu write register cpu:%d %#x val: %#x\n",
@@ -546,7 +546,7 @@
 }
 
 void
-Pl390::softInt(int ctx_id, SWI swi)
+Pl390::softInt(ContextID ctx_id, SWI swi)
 {
     switch (swi.list_type) {
       case 1:
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/arm/gic_pl390.hh
--- a/src/dev/arm/gic_pl390.hh  Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/arm/gic_pl390.hh  Fri Aug 07 09:59:13 2015 +0100
@@ -210,7 +210,7 @@
     /** software generated interrupt
      * @param data data to decode that indicates which cpus to interrupt
      */
-    void softInt(int ctx_id, SWI swi);
+    void softInt(ContextID ctx_id, SWI swi);
 
     /** See if some processor interrupt flags need to be enabled/disabled
      * @param hint which set of interrupts needs to be checked
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/arm/timer_cpulocal.cc
--- a/src/dev/arm/timer_cpulocal.cc     Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/arm/timer_cpulocal.cc     Fri Aug 07 09:59:13 2015 +0100
@@ -75,7 +75,7 @@
     assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
     assert(pkt->getSize() == 4);
     Addr daddr = pkt->getAddr() - pioAddr;
-    int cpu_id = pkt->req->contextId();
+    ContextID cpu_id = pkt->req->contextId();
     DPRINTF(Timer, "Reading from CpuLocalTimer at offset: %#x\n", daddr);
     assert(cpu_id >= 0);
     assert(cpu_id < CPU_MAX);
@@ -153,7 +153,7 @@
     assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
     assert(pkt->getSize() == 4);
     Addr daddr = pkt->getAddr() - pioAddr;
-    int cpu_id = pkt->req->contextId();
+    ContextID cpu_id = pkt->req->contextId();
     DPRINTF(Timer, "Writing to CpuLocalTimer at offset: %#x\n", daddr);
     assert(cpu_id >= 0);
     assert(cpu_id < CPU_MAX);
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/arm/vgic.cc
--- a/src/dev/arm/vgic.cc       Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/arm/vgic.cc       Fri Aug 07 09:59:13 2015 +0100
@@ -90,7 +90,7 @@
 {
     Addr daddr = pkt->getAddr() - vcpuAddr;
 
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
     assert(ctx_id < VGIC_CPU_MAX);
     struct vcpuIntData *vid = &vcpuData[ctx_id];
 
@@ -134,7 +134,7 @@
 {
     Addr daddr = pkt->getAddr() - hvAddr;
 
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
 
     DPRINTF(VGIC, "VGIC HVCtrl read register %#x\n", daddr);
 
@@ -228,7 +228,7 @@
 {
     Addr daddr = pkt->getAddr() - vcpuAddr;
 
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
     assert(ctx_id < VGIC_CPU_MAX);
     struct vcpuIntData *vid = &vcpuData[ctx_id];
 
@@ -275,7 +275,7 @@
 {
     Addr daddr = pkt->getAddr() - hvAddr;
 
-    int ctx_id = pkt->req->contextId();
+    ContextID ctx_id = pkt->req->contextId();
 
     DPRINTF(VGIC, "VGIC HVCtrl write register %#x <= %#x\n", daddr, 
pkt->get<uint32_t>());
 
@@ -380,7 +380,7 @@
  * This may raise a maintenance interrupt.
  */
 void
-VGic::updateIntState(int ctx_id)
+VGic::updateIntState(ContextID ctx_id)
 {
     // @todo This should update APRs!
 
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/arm/vgic.hh
--- a/src/dev/arm/vgic.hh       Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/arm/vgic.hh       Fri Aug 07 09:59:13 2015 +0100
@@ -222,7 +222,7 @@
     Tick writeVCpu(PacketPtr pkt);
     Tick writeCtrl(PacketPtr pkt);
 
-    void updateIntState(int ctx_id);
+    void updateIntState(ContextID ctx_id);
     uint32_t getMISR(struct vcpuIntData *vid);
     void postVInt(uint32_t cpu, Tick when);
     void unPostVInt(uint32_t cpu);
diff -r 2c347b12cc9c -r e7f403b6b76f src/dev/sinic.cc
--- a/src/dev/sinic.cc  Fri Aug 07 09:59:12 2015 +0100
+++ b/src/dev/sinic.cc  Fri Aug 07 09:59:13 2015 +0100
@@ -152,7 +152,7 @@
 
 
 void
-Device::prepareIO(int cpu, int index)
+Device::prepareIO(ContextID cpu, int index)
 {
     int size = virtualRegs.size();
     if (index > size)
@@ -165,7 +165,7 @@
 //add stats for average number of vnics busy
 
 void
-Device::prepareRead(int cpu, int index)
+Device::prepareRead(ContextID cpu, int index)
 {
     using namespace Regs;
     prepareIO(cpu, index);
@@ -206,7 +206,7 @@
 }
 
 void
-Device::prepareWrite(int cpu, int index)
+Device::prepareWrite(ContextID cpu, int index)
 {
     prepareIO(cpu, index);
 }
@@ -220,7 +220,7 @@
     assert(config.command & PCI_CMD_MSE);
     assert(pkt->getAddr() >= BARAddrs[0] && pkt->getSize() < BARSize[0]);
 
-    int cpu = pkt->req->contextId();
+    ContextID cpu = pkt->req->contextId();
     Addr daddr = pkt->getAddr() - BARAddrs[0];
     Addr index = daddr >> Regs::VirtualShift;
     Addr raddr = daddr & Regs::VirtualMask;
@@ -270,7 +270,7 @@
  * IPR read of device register
 
     Fault
-Device::iprRead(Addr daddr, int cpu, uint64_t &result)
+Device::iprRead(Addr daddr, ContextID cpu, uint64_t &result)
 {
     if (!regValid(daddr))
         panic("invalid address: da=%#x", daddr);
@@ -305,7 +305,7 @@
     assert(config.command & PCI_CMD_MSE);
     assert(pkt->getAddr() >= BARAddrs[0] && pkt->getSize() < BARSize[0]);
 
-    int cpu = pkt->req->contextId();
+    ContextID cpu = pkt->req->contextId();
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to