Go to the documentation of this file.
39 SCLogError(
"Fatal error encountered in FlowQueueNew. Exiting...");
67 if (fqc->
top == NULL) {
82 if (f->
next == NULL) {
93 if (dest->
bot == NULL) {
102 src->top =
src->bot = NULL;
106 static inline void FlowQueueAtomicSetNonEmpty(
FlowQueue *fq)
112 static inline void FlowQueueAtomicSetEmpty(
FlowQueue *fq)
121 if (fqc->
top == NULL)
125 if (fq->qbot == NULL) {
130 fq->qbot->next = fqc->
top;
132 fq->qlen += fqc->
len;
134 FlowQueueAtomicSetNonEmpty(fq);
136 fqc->
top = fqc->
bot = NULL;
144 fq->qtop = fq->qbot = NULL;
146 FlowQueueAtomicSetEmpty(fq);
161 if (fqc->
top == NULL) {
176 BUG_ON(q == NULL || f == NULL);
180 FlowQueueAtomicSetNonEmpty(q);
196 FlowQueueAtomicSetEmpty(q);
#define SC_ATOMIC_SET(name, val)
Set the value for the atomic variable.
void FlowQueueDestroy(FlowQueue *q)
Destroy a flow queue.
void FlowQueuePrivatePrependFlow(FlowQueuePrivate *fqc, Flow *f)
void FlowEnqueue(FlowQueue *q, Flow *f)
add a flow to a queue
#define FQLOCK_DESTROY(q)
FlowQueue * FlowQueueInit(FlowQueue *q)
FlowQueue * FlowQueueNew(void)
Flow * FlowQueuePrivateGetFromTop(FlowQueuePrivate *fqc)
void FlowQueueAppendPrivate(FlowQueue *fq, FlowQueuePrivate *fqc)
void FlowQueuePrivateAppendPrivate(FlowQueuePrivate *dest, FlowQueuePrivate *src)
Flow * FlowDequeue(FlowQueue *q)
remove a flow from the queue
FlowQueuePrivate FlowQueueExtractPrivate(FlowQueue *fq)
#define SCLogError(...)
Macro used to log ERROR messages.
#define SC_ATOMIC_GET(name)
Get the value from the atomic variable.
void FlowQueuePrivateAppendFlow(FlowQueuePrivate *fqc, Flow *f)