diff --git a/src/mem/protocol/RubySlicc_Types.sm b/src/mem/protocol/RubySlicc_Types.sm index 118cbc2f0..add3d979b 100644 --- a/src/mem/protocol/RubySlicc_Types.sm +++ b/src/mem/protocol/RubySlicc_Types.sm @@ -117,6 +117,7 @@ structure(RubyRequest, desc="...", interface="Message", external="yes") { RubyAccessMode AccessMode, desc="user/supervisor access type"; int Size, desc="size in bytes of access"; PrefetchBit Prefetch, desc="Is this a prefetch request"; + int contextId, desc="this goes away but must be replace with Nilay"; } external_type(AbstractEntry, primitive="yes"); diff --git a/src/mem/ruby/slicc_interface/RubyRequest.hh b/src/mem/ruby/slicc_interface/RubyRequest.hh index 06ca0de1c..8ac43a8e1 100644 --- a/src/mem/ruby/slicc_interface/RubyRequest.hh +++ b/src/mem/ruby/slicc_interface/RubyRequest.hh @@ -52,7 +52,7 @@ class RubyRequest : public Message PrefetchBit m_Prefetch; uint8_t* data; PacketPtr pkt; - unsigned proc_id; + unsigned m_contextId; RubyRequest() {} RubyRequest(uint64_t _paddr, uint8_t* _data, int _len, uint64_t _pc, @@ -67,7 +67,7 @@ class RubyRequest : public Message m_Prefetch(_pb), data(_data), pkt(_pkt), - proc_id(_proc_id) + m_contextId(_proc_id) { m_LineAddress = m_PhysicalAddress; m_LineAddress.makeLineAddress(); diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index 94ba6c2d3..94d41ffe4 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -671,11 +671,13 @@ Sequencer::issueRequest(const RubyRequest& request) Address line_addr(request.m_PhysicalAddress); line_addr.makeLineAddress(); + int proc_id = request.pkt->req->hasContextId() ? + request.pkt->req->contextId() : -1; RubyRequest *msg = new RubyRequest(request.m_PhysicalAddress.getAddress(), request.data, request.m_Size, request.m_ProgramCounter.getAddress(), ctype, amtype, request.pkt, - PrefetchBit_No, request.proc_id); + PrefetchBit_No, proc_id); DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\n", g_eventQueue_ptr->getTime(), m_version, "Seq", "Begin", "", "", diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py index da9ecba3a..9aea286d7 100644 --- a/src/mem/slicc/symbols/Type.py +++ b/src/mem/slicc/symbols/Type.py @@ -261,9 +261,6 @@ $klass ${{self.c_ident}}$parent for dm in self.data_members.values(): code('m_${{dm.ident}} = other.m_${{dm.ident}};') - if self.isMessage: - code('proc_id = other.proc_id;') - code.dedent() code('}') @@ -272,9 +269,6 @@ $klass ${{self.c_ident}}$parent params = [ 'const %s& local_%s' % (dm.type.c_ident, dm.ident) \ for dm in self.data_members.itervalues() ] - if self.isMessage: - params.append('const unsigned local_proc_id') - params = ', '.join(params) code('${{self.c_ident}}($params)') @@ -289,9 +283,6 @@ $klass ${{self.c_ident}}$parent if "nextLineCallHack" in dm: code('m_${{dm.ident}}${{dm["nextLineCallHack"]}};') - if self.isMessage: - code('proc_id = local_proc_id;') - code.dedent() code('}') @@ -377,9 +368,6 @@ set${{dm.ident}}(const ${{dm.type.c_ident}}& local_${{dm.ident}}) code('$const${{dm.type.c_ident}} m_${{dm.ident}}$init;') - if self.isMessage: - code('unsigned proc_id;') - code.dedent() code('};')