NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
cs-arc.c File Reference
#include "cs-arc.h"
#include "../core/logger.h"

Macros

#define CsArc_CallMoveCb(arc, entry, src, dst)
#define CsArc_Move(arc, entry, src, dst)

Functions

 N_LOG_INIT (CsArc)
void CsArc_Init (CsArc *arc, uint32_t c, uint32_t capB2)
 Initialize ARC.
void CsArc_Add (CsArc *arc, CsEntry *entry)
 Add or refresh an entry.
void CsArc_Remove (CsArc *arc, CsEntry *entry)
 Remove an entry.

Variables

const ptrdiff_t CsArc_ListOffsets_ []

Macro Definition Documentation

◆ CsArc_CallMoveCb

#define CsArc_CallMoveCb ( arc,
entry,
src,
dst )
Value:
(arc)->moveCb((entry), CslDirect##src, CslDirect##dst, (arc)->moveCtx)
@ CslDirect
Definition cs-enum.h:19

◆ CsArc_Move

#define CsArc_Move ( arc,
entry,
src,
dst )
Value:
do { \
NDNDPDK_ASSERT((entry)->arcList == CslDirect##src); \
CsList_Remove(&(arc)->src, (entry)); \
(entry)->arcList = CslDirect##dst; \
CsList_Append(&(arc)->dst, (entry)); \
N_LOGV("^ move=%p from=" #src " to=" #dst, (entry)); \
CsArc_CallMoveCb((arc), (entry), src, dst); \
} while (false)

Function Documentation

◆ CsArc_Add()

void CsArc_Add ( CsArc * arc,
CsEntry * entry )

Add or refresh an entry.

Precondition
PCC entry is populated.
If entry is already in ARC, entry->kind reflects its old value.

◆ CsArc_Init()

void CsArc_Init ( CsArc * arc,
uint32_t c,
uint32_t capB2 )

Initialize ARC.

Parameters
cnominal capacity.
capB2extended capacity of B2 list, used in CsDisk integration.

◆ CsArc_Remove()

void CsArc_Remove ( CsArc * arc,
CsEntry * entry )

Remove an entry.

◆ N_LOG_INIT()

N_LOG_INIT ( CsArc )

Variable Documentation

◆ CsArc_ListOffsets_

const ptrdiff_t CsArc_ListOffsets_[]
Initial value:
= {
[CslDirectT1] = offsetof(CsArc, T1), [CslDirectB1] = offsetof(CsArc, B1),
[CslDirectT2] = offsetof(CsArc, T2), [CslDirectB2] = offsetof(CsArc, B2),
[CslDirectDel] = offsetof(CsArc, Del),
}
@ CslDirectB2
Definition cs-enum.h:23
@ CslDirectT1
Definition cs-enum.h:20
@ CslDirectB1
Definition cs-enum.h:21
@ CslDirectT2
Definition cs-enum.h:22
@ CslDirectDel
Definition cs-enum.h:24
Lists for Adaptive Replacement Cache (ARC).
Definition cs-struct.h:30