static const is not a compiletime expression in C, unlike C++ and treating them the same just means that we just restrict where we can use the constants, e.g. they are not appropriate for static_assert. Turn them into proper macros to fix this. To keep the code easier to sync with other TLSF implementations we maintain the same lowercase naming, despite it being at odds with the general kernel coding style. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- common/tlsf.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/common/tlsf.c b/common/tlsf.c index 3ca58e3abbfb..3673b424a4c5 100644 --- a/common/tlsf.c +++ b/common/tlsf.c @@ -134,27 +134,25 @@ typedef struct block_header_t ** - bit 0: whether block is busy or free ** - bit 1: whether previous block is busy or free */ -static const size_t block_header_free_bit = 1 << 0; -static const size_t block_header_prev_free_bit = 1 << 1; +#define block_header_free_bit (1 << 0) +#define block_header_prev_free_bit (1 << 1) /* ** The size of the block header exposed to used blocks is the size field. ** The prev_phys_block field is stored *inside* the previous free block. */ -static const size_t block_header_overhead = sizeof(size_t); +#define block_header_overhead sizeof(size_t) /* User data starts directly after the size field in a used block. */ -static const size_t block_start_offset = - offsetof(block_header_t, size) + sizeof(size_t); +#define block_start_offset (offsetof(block_header_t, size) + sizeof(size_t)) /* ** A free block must be large enough to store its header minus the size of ** the prev_phys_block field, and no larger than the number of addressable ** bits for FL_INDEX. */ -static const size_t block_size_min = - sizeof(block_header_t) - sizeof(block_header_t*); -static const size_t block_size_max = tlsf_cast(size_t, 1) << FL_INDEX_MAX; +#define block_size_min (sizeof(block_header_t) - sizeof(block_header_t*)) +#define block_size_max (tlsf_cast(size_t, 1) << FL_INDEX_MAX) /* The TLSF control structure. */ -- 2.39.2