17#ifndef __ROGUE_HARDWARE_MEM_MAP_H__
18#define __ROGUE_HARDWARE_MEM_MAP_H__
33#define MAP_DEVICE "/dev/mem"
62 volatile uint8_t* map_;
65 std::shared_ptr<rogue::Logging> log_;
69 std::unique_ptr<std::thread> thread_;
70 std::atomic<bool> threadEn_{
false};
96 static std::shared_ptr<rogue::hardware::MemMap>
create(uint64_t base, uint32_t size);
114 MemMap(uint64_t base, uint32_t size);
129 void doTransaction(std::shared_ptr<rogue::interfaces::memory::Transaction> tran);
133typedef std::shared_ptr<rogue::hardware::MemMap>
MemMapPtr;
Thread-safe bounded queue with optional busy threshold.
Memory-slave bridge for direct /dev/mem mapped register access.
void doTransaction(std::shared_ptr< rogue::interfaces::memory::Transaction > tran)
Queues a memory transaction for asynchronous mapped-memory access.
void stop()
Stops worker thread, unmaps memory, and closes /dev/mem.
static std::shared_ptr< rogue::hardware::MemMap > create(uint64_t base, uint32_t size)
Creates a raw memory-map bridge instance.
static void setup_python()
Registers Python bindings for this class.
~MemMap()
Destroys the raw memory-map bridge instance.
std::shared_ptr< rogue::hardware::MemMap > MemMapPtr
Shared pointer alias for MemMap.