changeset 84:141fbaedf8f9

implement umem_{alloc,zalloc,free} in fakeumem Closes bug #11. Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Sat, 17 Oct 2015 08:17:56 -0400
parents ba392bf7439c
children 4de24cf7f81f
files src/fakeumem/fakeumem.c src/fakeumem/include/umem.h
diffstat 2 files changed, 38 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/fakeumem/fakeumem.c	Sat Oct 17 08:05:35 2015 -0400
+++ b/src/fakeumem/fakeumem.c	Sat Oct 17 08:17:56 2015 -0400
@@ -21,6 +21,7 @@
  */
 
 #include <errno.h>
+#include <string.h>
 
 #include <umem.h>
 
@@ -60,3 +61,36 @@
 {
 	free(buf);
 }
+
+void *umem_alloc(size_t size, int flags)
+{
+	void *tmp;
+
+	/*
+	 * Yes, this is terrible busy wait loop if we're short on memory.
+	 * Alas, it should work well enough for now.
+	 */
+	do {
+		tmp = malloc(size);
+		if (tmp)
+			return tmp;
+	} while (flags & UMEM_NOFAIL);
+
+	return NULL;
+}
+
+void *umem_zalloc(size_t size, int flags)
+{
+	void *tmp;
+
+	tmp = umem_alloc(size, flags);
+	if (tmp)
+		memset(tmp, 0, size);
+
+	return tmp;
+}
+
+void umem_free(void *buf, size_t size)
+{
+	free(buf);
+}
--- a/src/fakeumem/include/umem.h	Sat Oct 17 08:05:35 2015 -0400
+++ b/src/fakeumem/include/umem.h	Sat Oct 17 08:17:56 2015 -0400
@@ -51,4 +51,8 @@
 extern void *umem_cache_alloc(umem_cache_t *cache, int flags);
 extern void umem_cache_free(umem_cache_t *cache, void *buf);
 
+extern void *umem_alloc(size_t size, int flags);
+extern void *umem_zalloc(size_t size, int flags);
+extern void umem_free(void *buf, size_t size);
+
 #endif