The Sparta Modeling Framework
Loading...
Searching...
No Matches
MemoryRequest.hpp
1#pragma once
2
3#include <cinttypes>
4#include <ostream>
5
6#include "sparta/memory/AddressTypes.hpp"
7
8namespace sparta_target
9{
11 {
12 enum class Command {
13 READ, WRITE, UNKNOWN
14 };
15
16 Command cmd = Command::UNKNOWN;
18 uint32_t size = 0;
19 uint8_t *data = nullptr;
20 void *meta_data = nullptr;
21 };
22
23 inline std::ostream & operator<<(std::ostream & os, const MemoryRequest &req) {
24 auto flags = os.flags();
25 os << (req.cmd == MemoryRequest::Command::READ ? "READ " : "WRITE ");
26 os << std::hex << req.addr << " " << req.size;
27 os.flags(flags);
28 return os;
29 }
30
31}
uint64_t addr_t
Type for generic address representation in generic interfaces, errors and printouts within SPARTA.