From 2cb718af9a854a98c0a86f0d7de83fa31ff7b67c Mon Sep 17 00:00:00 2001 From: Konstantin Osipov <kostja@tarantool.org> Date: Mon, 23 Dec 2013 21:36:40 +0400 Subject: [PATCH] [small] Make a few members uint32_t rather than size_t. --- src/lib/small/mempool.c | 6 +++--- src/lib/small/mempool.h | 2 +- src/lib/small/region.h | 4 ++-- src/lib/small/slab_arena.c | 2 +- src/lib/small/slab_arena.h | 6 +++--- src/lib/small/slab_cache.c | 2 +- src/lib/small/slab_cache.h | 8 ++++---- test/unit/slab_arena.c | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/lib/small/mempool.c b/src/lib/small/mempool.c index 052242470a..905e05d411 100644 --- a/src/lib/small/mempool.c +++ b/src/lib/small/mempool.c @@ -157,7 +157,7 @@ mempool_create_with_order(struct mempool *pool, struct slab_cache *cache, pool->objsize = objsize; pool->slab_order = order; /* Account for slab meta. */ - size_t slab_size = slab_order_size(pool->cache, pool->slab_order) - + uint32_t slab_size = slab_order_size(pool->cache, pool->slab_order) - mslab_sizeof(); /* Calculate how many objects will actually fit in a slab. */ /* @@ -169,10 +169,10 @@ mempool_create_with_order(struct mempool *pool, struct slab_cache *cache, * X * objsize + X/8 = slab_size * X = (8 * slab_size)/(8 * objsize + 1) */ - size_t objcount = (CHAR_BIT * slab_size)/(CHAR_BIT * objsize + 1); + uint32_t objcount = (CHAR_BIT * slab_size)/(CHAR_BIT * objsize + 1); /* How many elements of slab->map can map objcount. */ assert(objcount); - size_t mapsize = (objcount + MEMPOOL_MAP_BIT - 1)/MEMPOOL_MAP_BIT; + uint32_t mapsize = (objcount + MEMPOOL_MAP_BIT - 1)/MEMPOOL_MAP_BIT; /* Adjust the result of integer division, which may be too large. */ while (objcount * objsize + mapsize * MEMPOOL_MAP_SIZEOF > slab_size) { objcount--; diff --git a/src/lib/small/mempool.h b/src/lib/small/mempool.h index e54e720f5c..03e10b807f 100644 --- a/src/lib/small/mempool.h +++ b/src/lib/small/mempool.h @@ -112,7 +112,7 @@ struct mslab { mbitmap_t map[0]; }; -static inline size_t +static inline uint32_t mslab_sizeof() { return small_align(sizeof(struct mslab), sizeof(intptr_t)); diff --git a/src/lib/small/region.h b/src/lib/small/region.h index b974742327..e06fbd4d4e 100644 --- a/src/lib/small/region.h +++ b/src/lib/small/region.h @@ -120,7 +120,7 @@ struct rslab uint32_t used; }; -static inline size_t +static inline uint32_t rslab_sizeof() { return small_align(sizeof(struct rslab), sizeof(intptr_t)); @@ -133,7 +133,7 @@ rslab_data(struct rslab *slab) } /** How much memory is available in a given block? */ -static inline size_t +static inline uint32_t rslab_unused(struct rslab *slab) { return slab->slab.size - rslab_sizeof() - slab->used; diff --git a/src/lib/small/slab_arena.c b/src/lib/small/slab_arena.c index 798c496f8b..6dabe4dbff 100644 --- a/src/lib/small/slab_arena.c +++ b/src/lib/small/slab_arena.c @@ -105,7 +105,7 @@ pow2round(size_t size) void slab_arena_create(struct slab_arena *arena, size_t prealloc, size_t maxalloc, - size_t slab_size, int flags) + uint32_t slab_size, int flags) { assert(flags & (MAP_PRIVATE | MAP_SHARED)); lf_lifo_init(&arena->cache); diff --git a/src/lib/small/slab_arena.h b/src/lib/small/slab_arena.h index 45e14c2a5c..b4bbaa3b76 100644 --- a/src/lib/small/slab_arena.h +++ b/src/lib/small/slab_arena.h @@ -70,7 +70,7 @@ struct slab_arena { * Typical value is 4Mb, which makes it possible to * allocate objects of size up to ~1MB. */ - size_t slab_size; + uint32_t slab_size; /** * How much memory is preallocated during initialization * of slab_arena. @@ -98,8 +98,8 @@ struct slab_arena { /** Initialize an arena. */ void -slab_arena_create(struct slab_arena *arena, size_t slab_size, - size_t prealloc, size_t maxalloc, int flags); +slab_arena_create(struct slab_arena *arena, size_t prealloc, + size_t maxalloc, uint32_t slab_size, int flags); /** Destroy an arena. */ void diff --git a/src/lib/small/slab_cache.c b/src/lib/small/slab_cache.c index 5a59c7a9c0..e955e4bad9 100644 --- a/src/lib/small/slab_cache.c +++ b/src/lib/small/slab_cache.c @@ -160,7 +160,7 @@ slab_merge(struct slab_cache *cache, struct slab *slab, struct slab *buddy) void slab_cache_create(struct slab_cache *cache, struct slab_arena *arena, - size_t order0_size) + uint32_t order0_size) { cache->arena = arena; diff --git a/src/lib/small/slab_cache.h b/src/lib/small/slab_cache.h index 86131231b7..8111908302 100644 --- a/src/lib/small/slab_cache.h +++ b/src/lib/small/slab_cache.h @@ -130,7 +130,7 @@ struct slab_cache { * defines the number of "orders" of slab cache. * This distance can't be more than ORDER_MAX. */ - size_t order0_size; + uint32_t order0_size; /* * Binary logarithm of order0_size, useful in pointer * arithmetics. @@ -163,7 +163,7 @@ struct slab_cache { void slab_cache_create(struct slab_cache *cache, struct slab_arena *arena, - size_t order0_size); + uint32_t order0_size); void slab_cache_destroy(struct slab_cache *cache); @@ -181,14 +181,14 @@ struct slab * slab_from_ptr(struct slab_cache *cache, void *ptr, uint8_t order); /* Aligned size of slab meta. */ -static inline size_t +static inline uint32_t slab_sizeof() { return small_align(sizeof(struct slab), sizeof(intptr_t)); } /** Useful size of a slab. */ -static inline size_t +static inline uint32_t slab_size(struct slab *slab) { return slab->size - slab_sizeof(); diff --git a/test/unit/slab_arena.c b/test/unit/slab_arena.c index 56f04c3190..9533377e49 100644 --- a/test/unit/slab_arena.c +++ b/test/unit/slab_arena.c @@ -9,7 +9,7 @@ void slab_arena_print(struct slab_arena *arena) { printf("arena->prealloc = %zu\narena->maxalloc = %zu\n" - "arena->used = %zu\narena->slab_size = %zu\n", + "arena->used = %zu\narena->slab_size = %u\n", arena->prealloc, arena->maxalloc, arena->used, arena->slab_size); } -- GitLab