NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_bitfield.h File Reference
#include <stdlib.h>
#include <intrin.h>
#include <doca_types.h>
Include dependency graph for doca_bitfield.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DOCA_SHIFT(_x)   (__doca_builtin_ffsll(_x) - 1)
 
#define DOCA_HTOBE16(_x)   _byteswap_ushort(_x)
 
#define DOCA_HTOBE32(_x)   _byteswap_ulong(_x)
 
#define DOCA_BETOH16(_x)   _byteswap_ushort(_x)
 
#define DOCA_BETOH32(_x)   _byteswap_ulong(_x)
 
#define DOCA_U8_GENMASK(_h, _l)   ((UINT8_MAX - (UINT8_C(1) << (_l)) + 1) & (UINT8_MAX >> (8 - 1 - (_h))))
 
#define DOCA_U8P_GENMASK(_h, _l, _p)
 
#define DOCA_BE16_GENMASK(_h, _l)    (DOCA_HTOBE16((UINT16_MAX - (UINT16_C(1) << (_l)) + 1) & (UINT16_MAX >> (16 - 1 - (_h)))))
 
#define DOCA_BE16P_GENMASK(_h, _l, _p)
 
#define DOCA_BE32_GENMASK(_h, _l)    (DOCA_HTOBE32((UINT32_MAX - (UINT32_C(1) << (_l)) + 1) & (UINT32_MAX >> (32 - 1 - (_h)))))
 
#define DOCA_BE32P_GENMASK(_h, _l, _p)
 
#define DOCA_U8_SET(_m, _v)   ((_v << DOCA_SHIFT(_m)) & _m)
 
#define DOCA_U8P_SET(_m, _v, _p)
 
#define DOCA_BE16_SET(_m, _v)   ((DOCA_HTOBE16(_v << DOCA_SHIFT(DOCA_BETOH16(_m)))) & _m)
 
#define DOCA_BE16P_SET(_m, _v, _p)
 
#define DOCA_BE32_SET(_m, _v)   ((DOCA_HTOBE32(_v << DOCA_SHIFT(DOCA_BETOH32(_m)))) & _m)
 
#define DOCA_BE32P_SET(_m, _v, _p)
 
#define DOCA_U8_GET(_m, _f)   (((_m) & (_f)) >> DOCA_SHIFT((_m)))
 
#define DOCA_BE16_GET(_m, _f)   ((DOCA_BETOH16((_m) & (_f)) >> DOCA_SHIFT(DOCA_BETOH16(_m))))
 
#define DOCA_BE32_GET(_m, _f)   ((DOCA_BETOH32((_m) & (_f)) >> DOCA_SHIFT(DOCA_BETOH32(_m))))
 

Functions

static int __doca_builtin_ffsll (long long x)