X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6be108db01439d3463342689446e457a315d6705..bb5ae5c85c0812c52e8d53187f2c6b0ee9525c8c:/lunaix-os/includes/lunaix/bits.h diff --git a/lunaix-os/includes/lunaix/bits.h b/lunaix-os/includes/lunaix/bits.h index 1029bb0..fca3f67 100644 --- a/lunaix-os/includes/lunaix/bits.h +++ b/lunaix-os/includes/lunaix/bits.h @@ -1,14 +1,24 @@ #ifndef __LUNAIX_BITS_H #define __LUNAIX_BITS_H +#include + +#define BITS_AT(val, bitfield) _BITS_STATIC(val, bitfield) + +#ifndef __ASM__ #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 BIT(p) BITFIELD(p, p) +#define BITFLAG(p) (1UL << (p)) + +#define BITS_GENMASK(bitfield) _BITS_GENMASK(bitfield) + +#define BITS_GET(from, bitfield) _BITS_EXTRACT(from, bitfield) -#define BITS_GET(from, bits) (((from) & (bits)) >> ctzl(bits)) +#define BITS_SET(to, bitfield, val) _BITS_INSERT(to, val, bitfield) -#define BITS_SET(to, bits, val) \ - (((to) & ~(bits)) | (((val) << ctzl(bits)) & (bits))) +#endif #endif /* __LUNAIX_BITS_H */