11 #include "common_priv.h"
17 #define MINIMUM_ALIGNMENT 64
72 ulong numChans,
bool useMBS)
75 if (maxThresh<1) maxThresh = 1;
76 if (maxThresh>queueLen) queueLen = maxThresh;
173 register ulong countUp = 0;
178 register ulong countDn = 0;
181 if (countUp || countDn)
188 memcpy(dst,src,countUp*elementSize);
192 memcpy(chanBase,src,countDn*elementSize);
223 if (count)
return count;
249 fprintf(stderr,
"ThresholdQueueBase::Grow(%lu,%lu)\n", queueLen, maxThresh);
272 while ((count = oldQueue.
Count()) != 0) {
static int Supported(void)
ulong MirrorSize(void) const
void Dequeue(ulong count)
ulong MaxThreshold(void) const
~ThresholdQueueBase(void)
const void * GetRawDequeuePtr(ulong dequeueThresh, ulong chan=0) const
#define MINIMUM_ALIGNMENT
void AllocateBuf(ulong queueLen, ulong maxThresh, ulong numChans, bool useMBS)
ulong QueueLength(void) const
ulong ElementsDequeued(void) const
ulong Freespace(void) const
void Enqueue(ulong count)
void Grow(ulong queueLen, ulong maxThresh)
ulong ElementsEnqueued(void) const
static ulong PageSize(void)
ulong BufferSize(void) const
void * GetRawEnqueuePtr(ulong enqueueThresh, ulong chan=0) const
ThresholdQueueBase(ulong elemSize, ulong queueLen, ulong maxThresh, ulong numChans=1)