13 #if GQUEUE_RTAI_SUPPORT
14 #define BEGIN_ATOMIC() rt_spl_lock(&pQueueControl->SPLAtomicAccess)
15 #define END_ATOMIC() rt_spl_unlock(&pQueueControl->SPLAtomicAccess)
17 #define BEGIN_ATOMIC()
39 pQueueControl->
Size = Size,
42 for(n=0;n<NReaders;++n){
49 #if GQUEUE_RTAI_SUPPORT
50 rt_spl_init(&pQueueControl->SPLAtomicAccess);
69 if(NReader>=pQueueControl->
NReaders){
81 *Index = pQueueControl->
ReadIndex[NReader];
92 *Index = pQueueControl->
ReadIndex[NReader];
119 if(NReader>=pQueueControl->
NReaders){
129 *Index = pQueueControl->
ReadIndex[NReader];
140 *Index = pQueueControl->
ReadIndex[NReader];
168 if(NReader>=pQueueControl->
NReaders){
178 *Index = (pQueueControl->
ReadIndex[NReader]-IndexHorizon);
180 *Index += pQueueControl->
Size;
212 *Index = (pQueueControl->
WriteIndex-IndexHorizon);
214 *Index += pQueueControl->
Size;
236 int FlagNotFull =
TRUE;
249 for(n=0;n<pQueueControl->
NReaders;++n){
279 if(NReader>=pQueueControl->
NReaders){
316 if(NReader>=pQueueControl->
NReaders){
int gQUEUE_UnwrapWriteIndex(PGQUEUECONTROL pQueueControl)
int FlagFull[MAXSIZE_QUEUE_READ_GATES]
int gQUEUE_UnwrapReadIndex(PGQUEUECONTROL pQueueControl, int NReader)
int gQUEUE_GetReadIndex(PGQUEUECONTROL pQueueControl, int NReader, int *Index, int IndexHorizon)
int gQUEUE_GetWriteIndex(PGQUEUECONTROL pQueueControl, int *Index, int IndexHorizon)
int gQUEUE_RequestLastReadIndex(PGQUEUECONTROL pQueueControl, int NReader, int *Index)
int FlagStillNotRead[MAXSIZE_QUEUE_READ_GATES]
int ReadIndex[MAXSIZE_QUEUE_READ_GATES]
int gQUEUE_RequestWriteIndex(PGQUEUECONTROL pQueueControl, int *Index)
int gQUEUE_GetNumberOfUnreadData(PGQUEUECONTROL pQueueControl, int NReader, int *Index)
int gQUEUE_RequestReadIndex(PGQUEUECONTROL pQueueControl, int NReader, int *Index)
int gQUEUE_Init(PGQUEUECONTROL pQueueControl, int Size, int NReaders)
#define MAXSIZE_QUEUE_READ_GATES