X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6be108db01439d3463342689446e457a315d6705..c7a60d29f54d6de10a8388d26af441c8bc48a803:/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..ddc2800 100644 --- a/lunaix-os/includes/lunaix/bits.h +++ b/lunaix-os/includes/lunaix/bits.h @@ -2,13 +2,16 @@ #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 BITS_SET(to, bits, val) \ - (((to) & ~(bits)) | (((val) << ctzl(bits)) & (bits))) +#define BITS_GENMASK(bits) _BITS_GENMASK(bits) + +#define BITS_GET(from, bits) _BITS_EXTRACT(from, bits) + +#define BITS_SET(to, bits, val) _BITS_INSERT(to, val, bits) #endif /* __LUNAIX_BITS_H */