suricata
interval-tree.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _T_ASSERT(a)
 
#define IRB_HEAD(name, type)
 
#define IRB_INITIALIZER(root)
 
#define IRB_INIT(root)
 
#define IRB_BLACK   0
 
#define IRB_RED   1
 
#define IRB_ENTRY(type)
 
#define IRB_LEFT(elm, field)   (elm)->field.rbe_left
 
#define IRB_RIGHT(elm, field)   (elm)->field.rbe_right
 
#define IRB_PARENT(elm, field)   (elm)->field.rbe_parent
 
#define IRB_COLOR(elm, field)   (elm)->field.rbe_color
 
#define IRB_ROOT(head)   (head)->rbh_root
 
#define IRB_EMPTY(head)   (IRB_ROOT(head) == NULL)
 
#define IRB_SET(elm, parent, field)
 
#define IRB_SET_BLACKRED(black, red, field)
 
#define IRB_AUGMENT(x, field)
 
#define IRB_ROTATE_LEFT(head, elm, tmp, field)
 
#define IRB_ROTATE_RIGHT(head, elm, tmp, field)
 
#define IRB_PROTOTYPE(name, type, field, cmp)   IRB_PROTOTYPE_INTERNAL(name, type, field, cmp, )
 
#define IRB_PROTOTYPE_STATIC(name, type, field, cmp)   IRB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)
 
#define IRB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr)
 
#define IRB_PROTOTYPE_INSERT_COLOR(name, type, attr)   attr void name##_IRB_INSERT_COLOR(struct name *, struct type *)
 
#define IRB_PROTOTYPE_REMOVE_COLOR(name, type, attr)   attr void name##_IRB_REMOVE_COLOR(struct name *, struct type *, struct type *)
 
#define IRB_PROTOTYPE_REMOVE(name, type, attr)   attr struct type *name##_IRB_REMOVE(struct name *, struct type *)
 
#define IRB_PROTOTYPE_INSERT(name, type, attr)   attr struct type *name##_IRB_INSERT(struct name *, struct type *)
 
#define IRB_PROTOTYPE_FIND(name, type, attr)   attr struct type *name##_IRB_FIND(struct name *, struct type *)
 
#define IRB_PROTOTYPE_NFIND(name, type, attr)   attr struct type *name##_IRB_NFIND(struct name *, struct type *)
 
#define IRB_PROTOTYPE_NEXT(name, type, attr)   attr struct type *name##_IRB_NEXT(struct type *)
 
#define IRB_PROTOTYPE_PREV(name, type, attr)   attr struct type *name##_IRB_PREV(struct type *)
 
#define IRB_PROTOTYPE_MINMAX(name, type, attr)   attr struct type *name##_IRB_MINMAX(struct name *, int)
 
#define IRB_GENERATE(name, type, field, cmp)   IRB_GENERATE_INTERNAL(name, type, field, cmp, )
 
#define IRB_GENERATE_STATIC(name, type, field, cmp)   IRB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)
 
#define IRB_GENERATE_INTERNAL(name, type, field, cmp, attr)
 
#define IRB_GENERATE_INSERT_COLOR(name, type, field, attr)
 
#define IRB_GENERATE_REMOVE_COLOR(name, type, field, attr)
 
#define IRB_GENERATE_REMOVE(name, type, field, attr)
 
#define IRB_GENERATE_INSERT(name, type, field, cmp, attr)
 
#define IRB_GENERATE_FIND(name, type, field, cmp, attr)
 
#define IRB_GENERATE_NFIND(name, type, field, cmp, attr)
 
#define IRB_GENERATE_NEXT(name, type, field, attr)
 
#define IRB_GENERATE_PREV(name, type, field, attr)
 
#define IRB_GENERATE_MINMAX(name, type, field, attr)
 
#define IRB_NEGINF   -1
 
#define IRB_INF   1
 
#define IRB_INSERT(name, x, y)   name##_IRB_INSERT(x, y)
 
#define IRB_REMOVE(name, x, y)   name##_IRB_REMOVE(x, y)
 
#define IRB_FIND(name, x, y)   name##_IRB_FIND(x, y)
 
#define IRB_NFIND(name, x, y)   name##_IRB_NFIND(x, y)
 
#define IRB_NEXT(name, x, y)   name##_IRB_NEXT(y)
 
#define IRB_PREV(name, x, y)   name##_IRB_PREV(y)
 
#define IRB_MIN(name, x)   name##_IRB_MINMAX(x, IRB_NEGINF)
 
#define IRB_MAX(name, x)   name##_IRB_MINMAX(x, IRB_INF)
 
#define IRB_FOREACH(x, name, head)   for ((x) = IRB_MIN(name, head); (x) != NULL; (x) = name##_IRB_NEXT(x))
 
#define IRB_FOREACH_FROM(x, name, y)   for ((x) = (y); ((x) != NULL) && ((y) = name##_IRB_NEXT(x), (x) != NULL); (x) = (y))
 
#define IRB_FOREACH_SAFE(x, name, head, y)
 
#define IRB_FOREACH_REVERSE(x, name, head)   for ((x) = IRB_MAX(name, head); (x) != NULL; (x) = name##_IRB_PREV(x))
 
#define IRB_FOREACH_REVERSE_FROM(x, name, y)   for ((x) = (y); ((x) != NULL) && ((y) = name##_IRB_PREV(x), (x) != NULL); (x) = (y))
 
#define IRB_FOREACH_REVERSE_SAFE(x, name, head, y)
 

Macro Definition Documentation

◆ _T_ASSERT

#define _T_ASSERT (   a)

Definition at line 42 of file interval-tree.h.

◆ IRB_AUGMENT

#define IRB_AUGMENT (   x,
  field 
)
Value:
do { \
if (x != NULL) { \
x->max = x->port2; \
if (IRB_LEFT(x, field) != NULL) { \
x->max = MAX(x->max, IRB_LEFT(x, field)->max); \
} \
if (IRB_RIGHT(x, field) != NULL) { \
x->max = MAX(x->max, IRB_RIGHT(x, field)->max); \
} \
} \
} while (0)

Definition at line 112 of file interval-tree.h.

◆ IRB_BLACK

#define IRB_BLACK   0

Definition at line 76 of file interval-tree.h.

◆ IRB_COLOR

#define IRB_COLOR (   elm,
  field 
)    (elm)->field.rbe_color

Definition at line 89 of file interval-tree.h.

◆ IRB_EMPTY

#define IRB_EMPTY (   head)    (IRB_ROOT(head) == NULL)

Definition at line 91 of file interval-tree.h.

◆ IRB_ENTRY

#define IRB_ENTRY (   type)
Value:
struct { \
struct type *rbe_left; /* left element */ \
struct type *rbe_right; /* right element */ \
struct type *rbe_parent; /* parent element */ \
int rbe_color; /* node color */ \
}

Definition at line 78 of file interval-tree.h.

◆ IRB_FIND

#define IRB_FIND (   name,
  x,
 
)    name##_IRB_FIND(x, y)

Definition at line 537 of file interval-tree.h.

◆ IRB_FOREACH

#define IRB_FOREACH (   x,
  name,
  head 
)    for ((x) = IRB_MIN(name, head); (x) != NULL; (x) = name##_IRB_NEXT(x))

Definition at line 544 of file interval-tree.h.

◆ IRB_FOREACH_FROM

#define IRB_FOREACH_FROM (   x,
  name,
 
)    for ((x) = (y); ((x) != NULL) && ((y) = name##_IRB_NEXT(x), (x) != NULL); (x) = (y))

Definition at line 547 of file interval-tree.h.

◆ IRB_FOREACH_REVERSE

#define IRB_FOREACH_REVERSE (   x,
  name,
  head 
)    for ((x) = IRB_MAX(name, head); (x) != NULL; (x) = name##_IRB_PREV(x))

Definition at line 554 of file interval-tree.h.

◆ IRB_FOREACH_REVERSE_FROM

#define IRB_FOREACH_REVERSE_FROM (   x,
  name,
 
)    for ((x) = (y); ((x) != NULL) && ((y) = name##_IRB_PREV(x), (x) != NULL); (x) = (y))

Definition at line 557 of file interval-tree.h.

◆ IRB_FOREACH_REVERSE_SAFE

#define IRB_FOREACH_REVERSE_SAFE (   x,
  name,
  head,
 
)
Value:
for ((x) = IRB_MAX(name, head); ((x) != NULL) && ((y) = name##_IRB_PREV(x), (x) != NULL); \
(x) = (y))

Definition at line 560 of file interval-tree.h.

◆ IRB_FOREACH_SAFE

#define IRB_FOREACH_SAFE (   x,
  name,
  head,
 
)
Value:
for ((x) = IRB_MIN(name, head); ((x) != NULL) && ((y) = name##_IRB_NEXT(x), (x) != NULL); \
(x) = (y))

Definition at line 550 of file interval-tree.h.

◆ IRB_GENERATE

#define IRB_GENERATE (   name,
  type,
  field,
  cmp 
)    IRB_GENERATE_INTERNAL(name, type, field, cmp, )

Definition at line 202 of file interval-tree.h.

◆ IRB_GENERATE_FIND

#define IRB_GENERATE_FIND (   name,
  type,
  field,
  cmp,
  attr 
)
Value:
/* Finds the node with the same key as elm */ \
attr struct type *name##_IRB_FIND(struct name *head, struct type *elm) \
{ \
struct type *tmp = IRB_ROOT(head); \
int comp; \
while (tmp) { \
comp = cmp(elm, tmp); \
if (comp < 0) \
tmp = IRB_LEFT(tmp, field); \
else if (comp > 0) \
tmp = IRB_RIGHT(tmp, field); \
else \
return (tmp); \
} \
return (NULL); \
}

Definition at line 438 of file interval-tree.h.

◆ IRB_GENERATE_INSERT

#define IRB_GENERATE_INSERT (   name,
  type,
  field,
  cmp,
  attr 
)
Value:
/* Inserts a node into the IRB tree */ \
attr struct type *name##_IRB_INSERT(struct name *head, struct type *elm) \
{ \
struct type *tmp; \
struct type *parent = NULL; \
int comp = 0; \
tmp = IRB_ROOT(head); \
while (tmp) { \
parent = tmp; \
comp = (cmp)(elm, parent); \
if (comp < 0) { \
tmp = IRB_LEFT(tmp, field); \
} else if (comp > 0) { \
tmp = IRB_RIGHT(tmp, field); \
} else \
return (tmp); \
} \
IRB_SET(elm, parent, field); \
if (parent != NULL) { \
if (comp < 0) \
IRB_LEFT(parent, field) = elm; \
IRB_RIGHT(parent, field) = elm; \
IRB_ROOT(head) = elm; \
IRB_AUGMENT(elm, field); \
name##_IRB_INSERT_COLOR(head, elm); \
return (NULL); \
}

Definition at line 407 of file interval-tree.h.

◆ IRB_GENERATE_INSERT_COLOR

#define IRB_GENERATE_INSERT_COLOR (   name,
  type,
  field,
  attr 
)

Definition at line 216 of file interval-tree.h.

◆ IRB_GENERATE_INTERNAL

#define IRB_GENERATE_INTERNAL (   name,
  type,
  field,
  cmp,
  attr 
)
Value:
IRB_GENERATE_INSERT_COLOR(name, type, field, attr) \
IRB_GENERATE_REMOVE_COLOR(name, type, field, attr) \
IRB_GENERATE_INSERT(name, type, field, cmp, attr) \
IRB_GENERATE_REMOVE(name, type, field, attr) \
IRB_GENERATE_FIND(name, type, field, cmp, attr) \
IRB_GENERATE_NFIND(name, type, field, cmp, attr) \
IRB_GENERATE_NEXT(name, type, field, attr) \
IRB_GENERATE_PREV(name, type, field, attr) \
IRB_GENERATE_MINMAX(name, type, field, attr)

Definition at line 205 of file interval-tree.h.

◆ IRB_GENERATE_MINMAX

#define IRB_GENERATE_MINMAX (   name,
  type,
  field,
  attr 
)
Value:
attr struct type *name##_IRB_MINMAX(struct name *head, int val) \
{ \
struct type *tmp = IRB_ROOT(head); \
struct type *parent = NULL; \
while (tmp) { \
parent = tmp; \
if (val < 0) \
tmp = IRB_LEFT(tmp, field); \
else \
tmp = IRB_RIGHT(tmp, field); \
} \
return (parent); \
}

Definition at line 517 of file interval-tree.h.

◆ IRB_GENERATE_NEXT

#define IRB_GENERATE_NEXT (   name,
  type,
  field,
  attr 
)
Value:
/* ARGSUSED */ \
attr struct type *name##_IRB_NEXT(struct type *elm) \
{ \
if (IRB_RIGHT(elm, field)) { \
elm = IRB_RIGHT(elm, field); \
while (IRB_LEFT(elm, field)) \
elm = IRB_LEFT(elm, field); \
} else { \
if (IRB_PARENT(elm, field) && (elm == IRB_LEFT(IRB_PARENT(elm, field), field))) \
elm = IRB_PARENT(elm, field); \
else { \
while (IRB_PARENT(elm, field) && \
(elm == IRB_RIGHT(IRB_PARENT(elm, field), field))) \
elm = IRB_PARENT(elm, field); \
elm = IRB_PARENT(elm, field); \
} \
} \
return (elm); \
}

Definition at line 476 of file interval-tree.h.

◆ IRB_GENERATE_NFIND

#define IRB_GENERATE_NFIND (   name,
  type,
  field,
  cmp,
  attr 
)
Value:
/* Finds the first node greater than or equal to the search key */ \
attr struct type *name##_IRB_NFIND(struct name *head, struct type *elm) \
{ \
struct type *tmp = IRB_ROOT(head); \
struct type *res = NULL; \
int comp; \
while (tmp) { \
comp = cmp(elm, tmp); \
if (comp < 0) { \
res = tmp; \
tmp = IRB_LEFT(tmp, field); \
} else if (comp > 0) \
tmp = IRB_RIGHT(tmp, field); \
else \
return (tmp); \
} \
return (res); \
}

Definition at line 456 of file interval-tree.h.

◆ IRB_GENERATE_PREV

#define IRB_GENERATE_PREV (   name,
  type,
  field,
  attr 
)
Value:
/* ARGSUSED */ \
attr struct type *name##_IRB_PREV(struct type *elm) \
{ \
if (IRB_LEFT(elm, field)) { \
elm = IRB_LEFT(elm, field); \
while (IRB_RIGHT(elm, field)) \
elm = IRB_RIGHT(elm, field); \
} else { \
if (IRB_PARENT(elm, field) && (elm == IRB_RIGHT(IRB_PARENT(elm, field), field))) \
elm = IRB_PARENT(elm, field); \
else { \
while (IRB_PARENT(elm, field) && (elm == IRB_LEFT(IRB_PARENT(elm, field), field))) \
elm = IRB_PARENT(elm, field); \
elm = IRB_PARENT(elm, field); \
} \
} \
return (elm); \
}

Definition at line 497 of file interval-tree.h.

◆ IRB_GENERATE_REMOVE

#define IRB_GENERATE_REMOVE (   name,
  type,
  field,
  attr 
)

Definition at line 337 of file interval-tree.h.

◆ IRB_GENERATE_REMOVE_COLOR

#define IRB_GENERATE_REMOVE_COLOR (   name,
  type,
  field,
  attr 
)

Definition at line 260 of file interval-tree.h.

◆ IRB_GENERATE_STATIC

#define IRB_GENERATE_STATIC (   name,
  type,
  field,
  cmp 
)    IRB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)

Definition at line 203 of file interval-tree.h.

◆ IRB_HEAD

#define IRB_HEAD (   name,
  type 
)
Value:
struct name { \
struct type *rbh_root; /* root of the tree */ \
}

Definition at line 61 of file interval-tree.h.

◆ IRB_INF

#define IRB_INF   1

Definition at line 533 of file interval-tree.h.

◆ IRB_INIT

#define IRB_INIT (   root)
Value:
do { \
(root)->rbh_root = NULL; \
} while (/*CONSTCOND*/ 0)

Definition at line 71 of file interval-tree.h.

◆ IRB_INITIALIZER

#define IRB_INITIALIZER (   root)
Value:
{ \
NULL \
}

Definition at line 66 of file interval-tree.h.

◆ IRB_INSERT

#define IRB_INSERT (   name,
  x,
 
)    name##_IRB_INSERT(x, y)

Definition at line 535 of file interval-tree.h.

◆ IRB_LEFT

#define IRB_LEFT (   elm,
  field 
)    (elm)->field.rbe_left

Definition at line 86 of file interval-tree.h.

◆ IRB_MAX

#define IRB_MAX (   name,
 
)    name##_IRB_MINMAX(x, IRB_INF)

Definition at line 542 of file interval-tree.h.

◆ IRB_MIN

#define IRB_MIN (   name,
 
)    name##_IRB_MINMAX(x, IRB_NEGINF)

Definition at line 541 of file interval-tree.h.

◆ IRB_NEGINF

#define IRB_NEGINF   -1

Definition at line 532 of file interval-tree.h.

◆ IRB_NEXT

#define IRB_NEXT (   name,
  x,
 
)    name##_IRB_NEXT(y)

Definition at line 539 of file interval-tree.h.

◆ IRB_NFIND

#define IRB_NFIND (   name,
  x,
 
)    name##_IRB_NFIND(x, y)

Definition at line 538 of file interval-tree.h.

◆ IRB_PARENT

#define IRB_PARENT (   elm,
  field 
)    (elm)->field.rbe_parent

Definition at line 88 of file interval-tree.h.

◆ IRB_PREV

#define IRB_PREV (   name,
  x,
 
)    name##_IRB_PREV(y)

Definition at line 540 of file interval-tree.h.

◆ IRB_PROTOTYPE

#define IRB_PROTOTYPE (   name,
  type,
  field,
  cmp 
)    IRB_PROTOTYPE_INTERNAL(name, type, field, cmp, )

Definition at line 169 of file interval-tree.h.

◆ IRB_PROTOTYPE_FIND

#define IRB_PROTOTYPE_FIND (   name,
  type,
  attr 
)    attr struct type *name##_IRB_FIND(struct name *, struct type *)

Definition at line 190 of file interval-tree.h.

◆ IRB_PROTOTYPE_INSERT

#define IRB_PROTOTYPE_INSERT (   name,
  type,
  attr 
)    attr struct type *name##_IRB_INSERT(struct name *, struct type *)

Definition at line 188 of file interval-tree.h.

◆ IRB_PROTOTYPE_INSERT_COLOR

#define IRB_PROTOTYPE_INSERT_COLOR (   name,
  type,
  attr 
)    attr void name##_IRB_INSERT_COLOR(struct name *, struct type *)

Definition at line 182 of file interval-tree.h.

◆ IRB_PROTOTYPE_INTERNAL

#define IRB_PROTOTYPE_INTERNAL (   name,
  type,
  field,
  cmp,
  attr 
)
Value:
IRB_PROTOTYPE_REMOVE_COLOR(name, type, attr); \
IRB_PROTOTYPE_INSERT(name, type, attr); \
IRB_PROTOTYPE_REMOVE(name, type, attr); \
IRB_PROTOTYPE_FIND(name, type, attr); \
IRB_PROTOTYPE_NFIND(name, type, attr); \
IRB_PROTOTYPE_NEXT(name, type, attr); \
IRB_PROTOTYPE_PREV(name, type, attr); \
IRB_PROTOTYPE_MINMAX(name, type, attr);

Definition at line 172 of file interval-tree.h.

◆ IRB_PROTOTYPE_MINMAX

#define IRB_PROTOTYPE_MINMAX (   name,
  type,
  attr 
)    attr struct type *name##_IRB_MINMAX(struct name *, int)

Definition at line 196 of file interval-tree.h.

◆ IRB_PROTOTYPE_NEXT

#define IRB_PROTOTYPE_NEXT (   name,
  type,
  attr 
)    attr struct type *name##_IRB_NEXT(struct type *)

Definition at line 194 of file interval-tree.h.

◆ IRB_PROTOTYPE_NFIND

#define IRB_PROTOTYPE_NFIND (   name,
  type,
  attr 
)    attr struct type *name##_IRB_NFIND(struct name *, struct type *)

Definition at line 192 of file interval-tree.h.

◆ IRB_PROTOTYPE_PREV

#define IRB_PROTOTYPE_PREV (   name,
  type,
  attr 
)    attr struct type *name##_IRB_PREV(struct type *)

Definition at line 195 of file interval-tree.h.

◆ IRB_PROTOTYPE_REMOVE

#define IRB_PROTOTYPE_REMOVE (   name,
  type,
  attr 
)    attr struct type *name##_IRB_REMOVE(struct name *, struct type *)

Definition at line 186 of file interval-tree.h.

◆ IRB_PROTOTYPE_REMOVE_COLOR

#define IRB_PROTOTYPE_REMOVE_COLOR (   name,
  type,
  attr 
)    attr void name##_IRB_REMOVE_COLOR(struct name *, struct type *, struct type *)

Definition at line 184 of file interval-tree.h.

◆ IRB_PROTOTYPE_STATIC

#define IRB_PROTOTYPE_STATIC (   name,
  type,
  field,
  cmp 
)    IRB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)

Definition at line 170 of file interval-tree.h.

◆ IRB_RED

#define IRB_RED   1

Definition at line 77 of file interval-tree.h.

◆ IRB_REMOVE

#define IRB_REMOVE (   name,
  x,
 
)    name##_IRB_REMOVE(x, y)

Definition at line 536 of file interval-tree.h.

◆ IRB_RIGHT

#define IRB_RIGHT (   elm,
  field 
)    (elm)->field.rbe_right

Definition at line 87 of file interval-tree.h.

◆ IRB_ROOT

#define IRB_ROOT (   head)    (head)->rbh_root

Definition at line 90 of file interval-tree.h.

◆ IRB_ROTATE_LEFT

#define IRB_ROTATE_LEFT (   head,
  elm,
  tmp,
  field 
)
Value:
do { \
(tmp) = IRB_RIGHT(elm, field); \
if ((IRB_RIGHT(elm, field) = IRB_LEFT(tmp, field)) != NULL) { \
IRB_PARENT(IRB_LEFT(tmp, field), field) = (elm); \
} \
if ((IRB_PARENT(tmp, field) = IRB_PARENT(elm, field)) != NULL) { \
if ((elm) == IRB_LEFT(IRB_PARENT(elm, field), field)) \
IRB_LEFT(IRB_PARENT(elm, field), field) = (tmp); \
IRB_RIGHT(IRB_PARENT(elm, field), field) = (tmp); \
} else \
(head)->rbh_root = (tmp); \
IRB_LEFT(tmp, field) = (elm); \
IRB_PARENT(elm, field) = (tmp); \
IRB_AUGMENT(elm, field); \
IRB_AUGMENT(tmp, field); \
if ((IRB_PARENT(tmp, field))) \
IRB_AUGMENT(IRB_PARENT(tmp, field), field); \
} while (/*CONSTCOND*/ 0)

Definition at line 126 of file interval-tree.h.

◆ IRB_ROTATE_RIGHT

#define IRB_ROTATE_RIGHT (   head,
  elm,
  tmp,
  field 
)
Value:
do { \
(tmp) = IRB_LEFT(elm, field); \
if ((IRB_LEFT(elm, field) = IRB_RIGHT(tmp, field)) != NULL) { \
IRB_PARENT(IRB_RIGHT(tmp, field), field) = (elm); \
} \
if ((IRB_PARENT(tmp, field) = IRB_PARENT(elm, field)) != NULL) { \
if ((elm) == IRB_LEFT(IRB_PARENT(elm, field), field)) \
IRB_LEFT(IRB_PARENT(elm, field), field) = (tmp); \
IRB_RIGHT(IRB_PARENT(elm, field), field) = (tmp); \
} else \
(head)->rbh_root = (tmp); \
IRB_RIGHT(tmp, field) = (elm); \
IRB_PARENT(elm, field) = (tmp); \
IRB_AUGMENT(elm, field); \
IRB_AUGMENT(tmp, field); \
if ((IRB_PARENT(tmp, field))) \
IRB_AUGMENT(IRB_PARENT(tmp, field), field); \
} while (/*CONSTCOND*/ 0)

Definition at line 147 of file interval-tree.h.

◆ IRB_SET

#define IRB_SET (   elm,
  parent,
  field 
)
Value:
do { \
IRB_PARENT(elm, field) = parent; \
IRB_LEFT(elm, field) = IRB_RIGHT(elm, field) = NULL; \
IRB_COLOR(elm, field) = IRB_RED; \
} while (/*CONSTCOND*/ 0)

Definition at line 93 of file interval-tree.h.

◆ IRB_SET_BLACKRED

#define IRB_SET_BLACKRED (   black,
  red,
  field 
)
Value:
do { \
IRB_COLOR(black, field) = IRB_BLACK; \
IRB_COLOR(red, field) = IRB_RED; \
} while (/*CONSTCOND*/ 0)

Definition at line 100 of file interval-tree.h.

IRB_ROOT
#define IRB_ROOT(head)
Definition: interval-tree.h:89
MAX
#define MAX(x, y)
Definition: suricata-common.h:395
IRB_MAX
#define IRB_MAX(name, x)
Definition: interval-tree.h:541
IRB_RED
#define IRB_RED
Definition: interval-tree.h:76
type
uint16_t type
Definition: decode-vlan.c:107
IRB_BLACK
#define IRB_BLACK
Definition: interval-tree.h:75
IRB_LEFT
#define IRB_LEFT(elm, field)
Definition: interval-tree.h:85
IRB_MIN
#define IRB_MIN(name, x)
Definition: interval-tree.h:540
IRB_RIGHT
#define IRB_RIGHT(elm, field)
Definition: interval-tree.h:86
head
Flow * head
Definition: flow-hash.h:1
IRB_PROTOTYPE_INSERT_COLOR
#define IRB_PROTOTYPE_INSERT_COLOR(name, type, attr)
Definition: interval-tree.h:181
IRB_PARENT
#define IRB_PARENT(elm, field)
Definition: interval-tree.h:87
IRB_GENERATE_INSERT_COLOR
#define IRB_GENERATE_INSERT_COLOR(name, type, field, attr)
Definition: interval-tree.h:215