xref: /dpdk/drivers/common/cnxk/roc_bits.h (revision fa8f86a14e2e5991c2ff10f5db6dea33f8e355e5)
1*fa8f86a1SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause
2*fa8f86a1SJerin Jacob  * Copyright(C) 2021 Marvell.
3*fa8f86a1SJerin Jacob  */
4*fa8f86a1SJerin Jacob 
5*fa8f86a1SJerin Jacob #ifndef _ROC_BITS_H_
6*fa8f86a1SJerin Jacob #define _ROC_BITS_H_
7*fa8f86a1SJerin Jacob 
8*fa8f86a1SJerin Jacob #ifndef BIT_ULL
9*fa8f86a1SJerin Jacob #define BIT_ULL(nr) (1ULL << (nr))
10*fa8f86a1SJerin Jacob #endif
11*fa8f86a1SJerin Jacob 
12*fa8f86a1SJerin Jacob #ifndef BIT
13*fa8f86a1SJerin Jacob #define BIT(nr) (1UL << (nr))
14*fa8f86a1SJerin Jacob #endif
15*fa8f86a1SJerin Jacob 
16*fa8f86a1SJerin Jacob #ifndef BITS_PER_LONG
17*fa8f86a1SJerin Jacob #define BITS_PER_LONG (__SIZEOF_LONG__ * 8)
18*fa8f86a1SJerin Jacob #endif
19*fa8f86a1SJerin Jacob #ifndef BITS_PER_LONG_LONG
20*fa8f86a1SJerin Jacob #define BITS_PER_LONG_LONG (__SIZEOF_LONG_LONG__ * 8)
21*fa8f86a1SJerin Jacob #endif
22*fa8f86a1SJerin Jacob 
23*fa8f86a1SJerin Jacob #ifndef GENMASK
24*fa8f86a1SJerin Jacob #define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
25*fa8f86a1SJerin Jacob #endif
26*fa8f86a1SJerin Jacob #ifndef GENMASK_ULL
27*fa8f86a1SJerin Jacob #define GENMASK_ULL(h, l)                                                      \
28*fa8f86a1SJerin Jacob 	(((~0ULL) - (1ULL << (l)) + 1) &                                       \
29*fa8f86a1SJerin Jacob 	 (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h))))
30*fa8f86a1SJerin Jacob #endif
31*fa8f86a1SJerin Jacob 
32*fa8f86a1SJerin Jacob #endif /* _ROC_BITS_H_ */
33