Skip to content

Commit daf584e

Browse files
danielRepjosecm
authored andcommitted
ref(bitmap): change bitmap size macros
Signed-off-by: Daniel Oliveira <[email protected]>
1 parent 8d6a4e7 commit daf584e

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

scripts/platform_defs_gen.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main() {
2424

2525
reg_size = platform.regions[i].size;
2626

27-
bitmap_array_size += reg_size / (8 * PAGE_SIZE) + ((reg_size % (8 * PAGE_SIZE) != 0) ? 1 : 0);
27+
bitmap_array_size += BITMAP_SIZE_IN_BYTES(NUM_PAGES(reg_size));
2828
}
2929

3030
printf("#define PLAT_BITMAP_POOL_SIZE (0x%lx)\n", bitmap_array_size);

src/core/objpool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
void objpool_init(struct objpool* objpool)
1010
{
1111
memset(objpool->pool, 0, objpool->objsize * objpool->num);
12-
memset(objpool->bitmap, 0, BITMAP_SIZE(objpool->num));
12+
memset(objpool->bitmap, 0, BITMAP_SIZE_IN_BYTES(objpool->num));
1313
objpool->lock = SPINLOCK_INITVAL;
1414
}
1515

src/lib/inc/bitmap.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ typedef bitmap_granule_t bitmap_t;
1616

1717
static const bitmap_granule_t ONE = 1;
1818

19-
#define BITMAP_GRANULE_LEN (sizeof(bitmap_granule_t) * 8)
20-
#define BITMAP_GRANULE_MASK(O, L) BIT32_MASK((O), (L))
19+
#define BITMAP_GRANULE_LEN (sizeof(bitmap_granule_t) * 8)
20+
#define BITMAP_GRANULE_MASK(O, L) BIT32_MASK((O), (L))
2121

22-
#define BITMAP_SIZE(SIZE) (((SIZE) / BITMAP_GRANULE_LEN) + ((SIZE) % BITMAP_GRANULE_LEN ? 1 : 0))
23-
#define BITMAP_SIZE_IN_BYTES(NUM_BITS) (((NUM_BITS) / 8) + (((NUM_BITS) % 8) > 0 ? 1 : 0))
24-
#define BITMAP_ALLOC(NAME, SIZE) bitmap_granule_t NAME[BITMAP_SIZE(SIZE)]
22+
#define BITMAP_SIZE(NUM_BITS, BITS_PER_UNIT) \
23+
(((NUM_BITS) / (BITS_PER_UNIT)) + (((NUM_BITS) % (BITS_PER_UNIT)) ? 1 : 0))
24+
#define BITMAP_SIZE_IN_GRANULE(NUM_BITS) (BITMAP_SIZE((NUM_BITS), (BITMAP_GRANULE_LEN)))
25+
#define BITMAP_SIZE_IN_BYTES(NUM_BITS) (BITMAP_SIZE((NUM_BITS), 8))
26+
#define BITMAP_ALLOC(NAME, SIZE) bitmap_granule_t NAME[BITMAP_SIZE_IN_GRANULE(SIZE)]
2527

26-
#define BITMAP_ALLOC_ARRAY(NAME, SIZE, NUM) bitmap_granule_t NAME[NUM][BITMAP_SIZE(SIZE)]
28+
#define BITMAP_ALLOC_ARRAY(NAME, SIZE, NUM) bitmap_granule_t NAME[NUM][BITMAP_SIZE_IN_GRANULE(SIZE)]
2729

2830
static inline void bitmap_set(bitmap_t* map, size_t bit)
2931
{

0 commit comments

Comments
 (0)