Class FlxToHostBuffer
Defined in File tohost_buffer.hpp
Inheritance Relationships
Base Type
public ToHostBuffer
(Class ToHostBuffer)
Class Documentation
-
class FlxToHostBuffer : public ToHostBuffer
Reader of a Felix card ToHost DMA buffer.
Public Functions
-
~FlxToHostBuffer()
-
virtual void allocate_buffer(size_t size, const std::string &name, bool vmem, bool free_previous_cmem = false) override
fraction of e-links enabled for this DMA buffer of a given type.
- Parameters:
name -- of the buffers passed to the CMEM driver.
vmem -- if true, do not use CMEM but malloc a buffer in memory.
free_previous_cmem -- if true, re-claim a buffer with the same name if present and not locked.
-
virtual void dma_start_continuous() override
inform the FELIX card of the allocated buffer, to be used as a circular DMA buffer.
-
virtual void dma_wait_for_data_irq() override
wait for an on-data MSI-X interrupt.
-
virtual size_t dma_bytes_available() override
- Returns:
number of bytes written by firmware, to be read by software.
-
virtual size_t dma_bytes_available_nowrap() override
- Returns:
number of bytes written by firmware up to the end of the buffer, to be read by software.
-
virtual bool dma_is_full() override
- Returns:
true if the DMA buffer is full.
-
virtual uint64_t dma_get_write_ptr() override
- Returns:
address in virtual memory of write pointer (moved by firmware).
-
virtual uint64_t dma_get_read_ptr() override
- Returns:
address in virtual memory of read pointer (moved by software).
-
virtual void dma_set_read_ptr_vaddr(uint64_t v_addr) override
set a new read pointer.
software uses the virtual addresses, firmware uses the physical ones.
- Parameters:
v_addr -- virtual address of new read pointer.
-
virtual void dma_set_read_ptr_paddr(uint64_t p_addr) override
set a new read pointer.
software uses the virtual addresses, firmware uses the physical ones.
- Parameters:
p_addr -- physical address of new read pointer.
-
virtual uint64_t dma_get_read_offset() override
- Returns:
read pointer offset with respect to the start of buffer.
-
virtual uint64_t dma_get_write_offset() override
- Returns:
write pointer offset with respect to the start of buffer.
-
virtual void dma_advance_read_ptr(size_t bytes) override
advance read pointer.
- Parameters:
bytes -- number of bytes processed by software.
-
~FlxToHostBuffer()