29#ifndef __MEM_RUBY_SYSTEM_DMASEQUENCER_HH__
30#define __MEM_RUBY_SYSTEM_DMASEQUENCER_HH__
34#include <unordered_map>
38#include "mem/ruby/protocol/DMASequencerRequestType.hh"
40#include "params/DMASequencer.hh"
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void dataCallback(const DataBlock &dblk, const Addr &addr)
DMASequencerParams Params
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void issueNext(const Addr &addr)
DMASequencer(const Params &)
RequestStatus makeRequest(PacketPtr pkt) override
void ackCallback(const Addr &addr)
int outstandingCount() const override
int m_max_outstanding_requests
void descheduleDeadlockEvent() override
bool isDeadlockEventScheduled() const override
std::unordered_map< Addr, DMARequest > RequestTable
void atomicCallback(const DataBlock &dblk, const Addr &addr)
RequestTable m_RequestTable
void recordRequestType(DMASequencerRequestType requestType)
uint64_t m_data_block_mask
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
DMARequest(uint64_t start_paddr, int len, bool write, int bytes_completed, int bytes_issued, uint8_t *data, PacketPtr pkt)