41#ifndef __MEM_RUBY_SLICC_INTERFACE_RUBYREQUEST_HH__
42#define __MEM_RUBY_SLICC_INTERFACE_RUBYREQUEST_HH__
50#include "mem/ruby/protocol/Message.hh"
51#include "mem/ruby/protocol/PrefetchBit.hh"
52#include "mem/ruby/protocol/RubyAccessMode.hh"
53#include "mem/ruby/protocol/RubyRequestType.hh"
90 uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode,
91 PacketPtr _pkt, PrefetchBit _pb = PrefetchBit_No,
120 uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode,
148 uint64_t _pc, RubyRequestType _type,
149 RubyAccessMode _access_mode,
PacketPtr _pkt, PrefetchBit _pb,
150 unsigned _proc_id,
unsigned _core_id,
153 uint64_t _instSeqNum = 0)
184 uint64_t _pc, RubyRequestType _type,
185 RubyAccessMode _access_mode,
PacketPtr _pkt, PrefetchBit _pb,
186 unsigned _proc_id,
unsigned _core_id,
190 uint64_t _instSeqNum = 0)
223 {
return std::shared_ptr<Message>(
new RubyRequest(*
this)); }
236 void print(std::ostream& out)
const;
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
RequestPtr req
A pointer to the original request.
RubyRequest(Tick curTime, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, uint64_t _instSeqNum=0)
Addr m_tlbiTransactionUid
bool m_htmFromTransaction
const int & getSize() const
Addr getPhysicalAddress() const
void setWriteMask(uint32_t offset, uint32_t len, std::vector< std::pair< int, AtomicOpFunctor * > > atomicOps)
Addr getLineAddress() const
RubyRequest(Tick curTime)
const RubyRequestType & getType() const
const PrefetchBit & getPrefetch() const
const RubyAccessMode & getAccessMode() const
RubyRequest(Tick curTime, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, ContextID _proc_id, ContextID _core_id)
RubyRequest for memory management commands.
RubyRequest(Tick curTime, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb=PrefetchBit_No, ContextID _proc_id=100, ContextID _core_id=99)
RubyRequest(Tick curTime, uint64_t _paddr, int _len, uint64_t _pc, RubyRequestType _type, RubyAccessMode _access_mode, PacketPtr _pkt, PrefetchBit _pb, unsigned _proc_id, unsigned _core_id, int _wm_size, std::vector< bool > &_wm_mask, DataBlock &_Data, std::vector< std::pair< int, AtomicOpFunctor * > > _atomicOps, uint64_t _instSeqNum=0)
bool functionalWrite(Packet *pkt)
void print(std::ostream &out) const
RequestPtr getRequestPtr() const
bool functionalRead(Packet *pkt)
The two functions below are used for reading / writing the message functionally.
uint64_t m_htmTransactionUid
RubyAccessMode m_AccessMode
Addr getProgramCounter() const
bool isSecure(ThreadContext *tc)
std::shared_ptr< Message > MsgPtr
Addr makeLineAddress(Addr addr)
std::ostream & operator<<(std::ostream &os, const BoolVec &myvector)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
int ContextID
Globally unique thread context ID.