nmpp
Открытые члены | Поля данных
Шаблон класса C_RingBufferRemote< T >

Открытые члены

 C_RingBufferRemote (size_t ringbuffer_addr, t_bytecpy push_memcopy, t_bytecpy pop_memcopy)
 
size_t GetHead ()
 
size_t GetTail ()
 
void SetHead ()
 
void SetTail ()
 
bool Init (size_t ringbuffer_addr, t_bytecpy push_memcopy, t_bytecpy pop_memcopy)
 
__INLINE__ bool IsFull ()
 
__INLINE__ bool IsEmpty ()
 
__INLINE__ size_t GetWriteAvail ()
 
__INLINE__ size_t GetReadAvail ()
 
bool Push (int numElements)
 
bool Pop (int numElements)
 
size_t Push (T *pSrcElements, size_t numElements, int ExitMode=EXIT_ON_COMPLETED)
 
size_t Pop (T *pDstElements, size_t numElements, int ExitMode=EXIT_ON_COMPLETED)
 
size_t View (T *pDstElements, size_t numElements, int ExitMode=EXIT_ON_COMPLETED)
 

Поля данных

size_t data_addr
 физический адрес кольцевого буфера входных данных
 
size_t head_addr
 сколько элементов ОТ НАЧАЛА ПОТОКА код MASTER уже записал в буфер входных данных [заполняется MASTER]
 
size_t tail_addr
 сколько элементов ОТ НАЧАЛА ПОТОКА код SLAVE уже прочитал (обработал) [заполняется SLAVE]
 
size_t size
 размер кольцевого буфера входных данных (в элементах; гарантируется что это степень двойки)
 
size_t head
 сколько элементов ОТ НАЧАЛА ПОТОКА код MASTER уже записал в буфер входных данных [заполняется MASTER]
 
size_t tail
 сколько элементов ОТ НАЧАЛА ПОТОКА код SLAVE уже прочитал (обработал) [заполняется SLAVE]
 
size_t id
 сколько элементов ОТ НАЧАЛА ПОТОКА код SLAVE уже прочитал (обработал) [заполняется SLAVE]
 
bool isConnected
 
t_bytecpy push_memcpy
 
t_bytecpy pop_memcpy
 
t_memcpy dma_init
 
size_t(* dma_check )()
 
T * dma_ptr
 
size_t dma_left
 
size_t dma_size
 
unsigned timeout
 
unsigned time2sleep
 
int pad [16-3-5 *sizeof(t_bytecpy)/sizeof(int)]
 резервные поля
 

Объявления и описания членов класса находятся в файле: