diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2014-10-24 15:30:18 +0200 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2014-10-31 12:05:27 -0400 |
commit | 11c32d3baa60f9919b7eba4f58841db0039403f2 (patch) | |
tree | 5be9ea22e117fec4d600c5f655ef07955a0457bd /src | |
parent | eaa45759c706b458b60a3d951e469dc882def9e4 (diff) |
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.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/shared/mempool.c | 9 | ||||
-rw-r--r-- | src/shared/mempool.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/mempool.c b/src/shared/mempool.c index b39a37f2db..d5d98d8829 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 8b0bf381bf..42f473bee1 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) \ |