1 #ifndef NDNDPDK_PCCT_CS_LIST_H
2 #define NDNDPDK_PCCT_CS_LIST_H
8 __attribute__((nonnull))
void
11 static __rte_always_inline
void
20 static __rte_always_inline
void
31 __attribute__((nonnull))
static __rte_always_inline
void
33 CsList_AppendNode_(csl, (
CsNode*)entry);
38 __attribute__((nonnull))
static __rte_always_inline
void
41 CsList_RemoveNode_(csl, (
CsNode*)entry);
46 __attribute__((nonnull, returns_nonnull))
static __rte_always_inline
CsEntry*
47 CsList_GetFront(
CsList* csl) {
53 __attribute__((nonnull))
static __rte_always_inline
void
55 CsList_RemoveNode_(csl, (
CsNode*)entry);
56 CsList_AppendNode_(csl, (
CsNode*)entry);
65 __attribute__((nonnull)) uint32_t
#define NDNDPDK_ASSERT(x)
Definition: common.h:60
void CsList_Init(CsList *csl)
Definition: cs-list.c:9
uint32_t CsList_EvictBulk(CsList *csl, uint32_t max, CsList_EvictCb cb, uintptr_t ctx)
Evict up to max entries from front of list.
Definition: cs-list.c:16
void(* CsList_EvictCb)(CsEntry *entry, uintptr_t ctx)
Definition: cs-list.h:59
A CS entry.
Definition: cs-entry.h:22
A doubly linked list within CS.
Definition: cs-struct.h:18
uint32_t count
number of entries
Definition: cs-struct.h:21
CsNode * next
front pointer, self if list is empty
Definition: cs-struct.h:20
CsNode * prev
back pointer, self if list is empty
Definition: cs-struct.h:19
The prev-next pointers common in CsEntry and CsList.
Definition: cs-struct.h:12
CsNode * prev
Definition: cs-struct.h:13
CsNode * next
Definition: cs-struct.h:14