Program Listing for File cmem_buffer.hpp
↰ Return to documentation for file (cmem_buffer.hpp
)
#ifndef FELIX_DMA_H_
#define FELIX_DMA_H_
#include <string>
class DmaBuffer {
public:
uint64_t paddr;
uint64_t vaddr;
size_t size;
uint64_t pend;
uint64_t pc_ptr;
uint64_t emu_fw_ptr;
explicit DmaBuffer(size_t c) : paddr(0), vaddr(0), size(c), pend(0), pc_ptr(0), emu_fw_ptr(0) {};
virtual ~DmaBuffer() {};
};
class CmemBuffer : public DmaBuffer {
public:
int handle;
bool free_previous_cmem;
explicit CmemBuffer(size_t size, const std::string& cmem_name, bool free_previous_cmem = false);
~CmemBuffer();
CmemBuffer(const CmemBuffer&) = delete;
CmemBuffer& operator=(CmemBuffer&&) = delete;
static bool cmem_buffer_exists(const std::string& cmem_name);
};
class VmemBuffer : public DmaBuffer {
public:
explicit VmemBuffer(size_t size);
~VmemBuffer();
VmemBuffer(const VmemBuffer&) = delete;
VmemBuffer& operator=(VmemBuffer&&) = delete;
private:
void* ptr;
};
#endif /* FELIX_DMA_H_ */