summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2014-10-24 15:30:18 +0200
committerAnthony G. Basile <blueness@gentoo.org>2014-10-31 12:05:27 -0400
commit11c32d3baa60f9919b7eba4f58841db0039403f2 (patch)
tree5be9ea22e117fec4d600c5f655ef07955a0457bd
parenteaa45759c706b458b60a3d951e469dc882def9e4 (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>
-rw-r--r--src/shared/mempool.c9
-rw-r--r--src/shared/mempool.h1
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) \