NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions | Variables
cs-arc.c File Reference
#include "cs-arc.h"
#include "../core/logger.h"

Macros

#define CsArc_CallMoveCb(arc, entry, src, dst)    (arc)->moveCb((entry), CslDirect##src, CslDirect##dst, (arc)->moveCtx)
 
#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. More...
 
void CsArc_Add (CsArc *arc, CsEntry *entry)
 Add or refresh an entry. More...
 
void CsArc_Remove (CsArc *arc, CsEntry *entry)
 Remove an entry. More...
 

Variables

const ptrdiff_t CsArc_ListOffsets_ []
 

Macro Definition Documentation

◆ CsArc_CallMoveCb

#define CsArc_CallMoveCb (   arc,
  entry,
  src,
  dst 
)     (arc)->moveCb((entry), CslDirect##src, CslDirect##dst, (arc)->moveCtx)

◆ 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)
@ CslDirect
Definition: cs-enum.h:19

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