Skip to content

Commit 57ae985

Browse files
authored
Merge pull request #234 from ldorau/Add_ALIGN_UP_and_ALIGN_DOWN_macros_and_remove_align_size
Add ALIGN_UP and ALIGN_DOWN macros and remove align_size()
2 parents 7338b6d + a415072 commit 57ae985

File tree

3 files changed

+8
-15
lines changed

3 files changed

+8
-15
lines changed

src/base_alloc/base_alloc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ static void ba_divide_memory_into_chunks(umf_ba_pool_t *pool, void *ptr,
115115
}
116116

117117
umf_ba_pool_t *umf_ba_create(size_t size) {
118-
size_t chunk_size = align_size(size, MEMORY_ALIGNMENT);
119-
size_t mutex_size = align_size(util_mutex_get_size(), MEMORY_ALIGNMENT);
118+
size_t chunk_size = ALIGN_UP(size, MEMORY_ALIGNMENT);
119+
size_t mutex_size = ALIGN_UP(util_mutex_get_size(), MEMORY_ALIGNMENT);
120120

121121
size_t metadata_size = sizeof(struct umf_ba_main_pool_meta_t);
122122
size_t pool_size = sizeof(void *) + metadata_size + mutex_size +
@@ -125,7 +125,7 @@ umf_ba_pool_t *umf_ba_create(size_t size) {
125125
pool_size = MINIMUM_POOL_SIZE;
126126
}
127127

128-
pool_size = align_size(pool_size, ba_os_get_page_size());
128+
pool_size = ALIGN_UP(pool_size, ba_os_get_page_size());
129129

130130
umf_ba_pool_t *pool = (umf_ba_pool_t *)ba_os_alloc(pool_size);
131131
if (!pool) {

src/base_alloc/base_alloc_linear.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ umf_ba_linear_pool_t *umf_ba_linear_create(size_t pool_size) {
7878
pool_size = MINIMUM_LINEAR_POOL_SIZE;
7979
}
8080

81-
pool_size = align_size(pool_size, ba_os_get_page_size());
81+
pool_size = ALIGN_UP(pool_size, ba_os_get_page_size());
8282

8383
umf_ba_linear_pool_t *pool = (umf_ba_linear_pool_t *)ba_os_alloc(pool_size);
8484
if (!pool) {
@@ -109,15 +109,15 @@ umf_ba_linear_pool_t *umf_ba_linear_create(size_t pool_size) {
109109
}
110110

111111
void *umf_ba_linear_alloc(umf_ba_linear_pool_t *pool, size_t size) {
112-
size_t aligned_size = align_size(size, MEMORY_ALIGNMENT);
112+
size_t aligned_size = ALIGN_UP(size, MEMORY_ALIGNMENT);
113113
util_mutex_lock(&pool->metadata.lock);
114114
if (pool->metadata.size_left < aligned_size) {
115115
size_t pool_size = MINIMUM_LINEAR_POOL_SIZE;
116116
size_t usable_size =
117117
pool_size - offsetof(umf_ba_next_linear_pool_t, data);
118118
if (usable_size < aligned_size) {
119119
pool_size += aligned_size - usable_size;
120-
pool_size = align_size(pool_size, ba_os_get_page_size());
120+
pool_size = ALIGN_UP(pool_size, ba_os_get_page_size());
121121
}
122122

123123
assert(pool_size - offsetof(umf_ba_next_linear_pool_t, data) >=

src/utils/utils_common.h

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,8 @@ static inline void align_ptr_size(void **ptr, size_t *size, size_t alignment) {
8686
*size = s;
8787
}
8888

89-
static inline size_t align_size(size_t size, size_t alignment) {
90-
// align size to 'alignment' bytes
91-
size_t rest = size & (alignment - 1);
92-
if (rest) {
93-
return (size - rest + alignment);
94-
} else {
95-
return size;
96-
}
97-
}
89+
#define ALIGN_UP(value, align) (((value) + (align)-1) & ~((align)-1))
90+
#define ALIGN_DOWN(value, align) ((value) & ~((align)-1))
9891

9992
#ifdef __cplusplus
10093
}

0 commit comments

Comments
 (0)