X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/4bc10176c9f47063d8eddf8703832304b8151f5d..6be108db01439d3463342689446e457a315d6705:/lunaix-os/includes/lunaix/bits.h diff --git a/lunaix-os/includes/lunaix/bits.h b/lunaix-os/includes/lunaix/bits.h new file mode 100644 index 0000000..1029bb0 --- /dev/null +++ b/lunaix-os/includes/lunaix/bits.h @@ -0,0 +1,14 @@ +#ifndef __LUNAIX_BITS_H +#define __LUNAIX_BITS_H + +#include + +#define BITS(h, l) (((1UL << ((h) + 1)) - 1) ^ ((1UL << (l)) - 1)) +#define BIT(p) BITS(p, p) + +#define BITS_GET(from, bits) (((from) & (bits)) >> ctzl(bits)) + +#define BITS_SET(to, bits, val) \ + (((to) & ~(bits)) | (((val) << ctzl(bits)) & (bits))) + +#endif /* __LUNAIX_BITS_H */