X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6be108db01439d3463342689446e457a315d6705..e9fda657d5cb6f6619605766618aa78edd97f6a9:/lunaix-os/includes/lunaix/bits.h?ds=sidebyside diff --git a/lunaix-os/includes/lunaix/bits.h b/lunaix-os/includes/lunaix/bits.h index 1029bb0..65a6ef8 100644 --- a/lunaix-os/includes/lunaix/bits.h +++ b/lunaix-os/includes/lunaix/bits.h @@ -2,13 +2,17 @@ #define __LUNAIX_BITS_H #include +#include -#define BITS(h, l) (((1UL << ((h) + 1)) - 1) ^ ((1UL << (l)) - 1)) -#define BIT(p) BITS(p, p) +#define BITFIELD(h, l) (h), (l) -#define BITS_GET(from, bits) (((from) & (bits)) >> ctzl(bits)) +#define BIT(p) BITFIELD(p, p) +#define BITFLAG(p) (1UL << (p)) -#define BITS_SET(to, bits, val) \ - (((to) & ~(bits)) | (((val) << ctzl(bits)) & (bits))) +#define BITS_GENMASK(bitfield) _BITS_GENMASK(bitfield) + +#define BITS_GET(from, bitfield) _BITS_EXTRACT(from, bitfield) + +#define BITS_SET(to, bitfield, val) _BITS_INSERT(to, val, bitfield) #endif /* __LUNAIX_BITS_H */