X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Futil.h;h=743b9fea169462d687f12f0dd52d5bbbfc75a2cc;hb=7d78f21c057ff50a823220d809ac38c3d907243c;hp=bff6153a8daf354f8325394db035789be4d6f57b;hpb=4c21aa063fa1c7f95800c95fafebedcd577ce674;p=sliver-openvswitch.git diff --git a/lib/util.h b/lib/util.h index bff6153a8..743b9fea1 100644 --- a/lib/util.h +++ b/lib/util.h @@ -151,6 +151,19 @@ is_pow2(uintmax_t x) #define CACHE_LINE_SIZE 64 BUILD_ASSERT_DECL(IS_POW2(CACHE_LINE_SIZE)); +#define CACHE_LINE_SIZE 64 /* Correct for most CPUs. */ + +static inline void +ovs_prefetch_range(const void *start, size_t size) +{ + const char *addr = (const char *)start; + size_t ofs; + + for (ofs = 0; ofs < size; ofs += CACHE_LINE_SIZE) { + OVS_PREFETCH(addr + ofs); + } +} + #ifndef MIN #define MIN(X, Y) ((X) < (Y) ? (X) : (Y)) #endif @@ -486,6 +499,7 @@ uint64_t bitwise_get(const void *src, unsigned int src_len, unsigned int src_ofs, unsigned int n_bits); void xsleep(unsigned int seconds); + #ifdef _WIN32 char *ovs_format_message(int error);