.. _program_listing_file_cmem_buffer.hpp: Program Listing for File cmem_buffer.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``cmem_buffer.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef FELIX_DMA_H_ #define FELIX_DMA_H_ #include 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_ */