From: Michal Schmidt Date: Fri, 24 Oct 2014 13:30:18 +0000 (+0200) Subject: mempool: add a zeroing alloc function X-Git-Tag: v218~651 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=52fc5ce38c871e8d75392592919c66ab7f7575dd mempool: add a zeroing alloc function Add mempool_alloc0_tile(). It's like mempool_alloc_tile(), but it initializes the allocated tile's memory to zero. --- diff --git a/src/shared/mempool.c b/src/shared/mempool.c index b39a37f2d..d5d98d882 100644 --- a/src/shared/mempool.c +++ b/src/shared/mempool.c @@ -74,6 +74,15 @@ void* mempool_alloc_tile(struct mempool *mp) { return ((uint8_t*) mp->first_pool) + ALIGN(sizeof(struct pool)) + i*mp->tile_size; } +void* mempool_alloc0_tile(struct mempool *mp) { + void *p; + + p = mempool_alloc_tile(mp); + if (p) + memzero(p, mp->tile_size); + return p; +} + void mempool_free_tile(struct mempool *mp, void *p) { * (void**) p = mp->freelist; mp->freelist = p; diff --git a/src/shared/mempool.h b/src/shared/mempool.h index 8b0bf381b..42f473bee 100644 --- a/src/shared/mempool.h +++ b/src/shared/mempool.h @@ -34,6 +34,7 @@ struct mempool { }; void* mempool_alloc_tile(struct mempool *mp); +void* mempool_alloc0_tile(struct mempool *mp); void mempool_free_tile(struct mempool *mp, void *p); #define DEFINE_MEMPOOL(pool_name, tile_type, alloc_at_least) \