X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fcache.h;h=04f91e000618542f28e79b5ea7fba421eb3d460a;hb=d26b8607c9f9a4385bf7af0a01b1a42efaed5053;hp=7a54d34dfeee5d3d581d80dddc7a752ec87d0dce;hpb=5f21e1bd613b372ea6f8be6423894548dae59bdc;p=vpp.git diff --git a/src/vppinfra/cache.h b/src/vppinfra/cache.h index 7a54d34dfee..04f91e00061 100644 --- a/src/vppinfra/cache.h +++ b/src/vppinfra/cache.h @@ -58,6 +58,12 @@ #define CLIB_CACHE_LINE_BYTES (1 << CLIB_LOG2_CACHE_LINE_BYTES) #define CLIB_CACHE_LINE_ALIGN_MARK(mark) u8 mark[0] __attribute__((aligned(CLIB_CACHE_LINE_BYTES))) +#define CLIB_CACHE_LINE_ROUND(x) ((x + CLIB_CACHE_LINE_BYTES - 1) & ~(CLIB_CACHE_LINE_BYTES - 1)) + +/* Default cache line fill buffers. */ +#ifndef CLIB_N_PREFETCHES +#define CLIB_N_PREFETCHES 16 +#endif /* Read/write arguments to __builtin_prefetch. */ #define CLIB_PREFETCH_READ 0 @@ -84,6 +90,18 @@ do { \ #undef _ +static_always_inline void +clib_prefetch_load (void *p) +{ + CLIB_PREFETCH (p, CLIB_CACHE_LINE_BYTES, LOAD); +} + +static_always_inline void +clib_prefetch_store (void *p) +{ + CLIB_PREFETCH (p, CLIB_CACHE_LINE_BYTES, STORE); +} + #endif /* included_clib_cache_h */