mirror of
https://github.com/GrapheneOS/hardened_malloc.git
synced 2025-05-24 00:41:11 -04:00
calculate slab size class instead of array loop
This commit is contained in:
parent
d8cb2d9f7a
commit
81cf2f27a0
2 changed files with 17 additions and 13 deletions
8
util.h
8
util.h
|
@ -35,6 +35,8 @@ typedef uint32_t u32;
|
|||
typedef uint64_t u64;
|
||||
typedef unsigned __int128 u128;
|
||||
|
||||
#define U64_WIDTH 64
|
||||
|
||||
static inline int clz64(u64 x) {
|
||||
return __builtin_clzll(x);
|
||||
}
|
||||
|
@ -43,6 +45,10 @@ static inline int ffz64(u64 x) {
|
|||
return __builtin_ffsll(~x);
|
||||
}
|
||||
|
||||
static inline u64 log2u64(u64 x) {
|
||||
return U64_WIDTH - clz64(x) - 1;
|
||||
}
|
||||
|
||||
static inline size_t align(size_t size, size_t align) {
|
||||
size_t mask = align - 1;
|
||||
return (size + mask) & ~mask;
|
||||
|
@ -50,8 +56,6 @@ static inline size_t align(size_t size, size_t align) {
|
|||
|
||||
COLD noreturn void fatal_error(const char *s);
|
||||
|
||||
#define U64_WIDTH 64
|
||||
|
||||
#if CONFIG_SEAL_METADATA
|
||||
|
||||
#ifdef __GLIBC__
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue