lib/memalign: remove smalloc()/sfree() dependency
[fio.git] / lib / memalign.c
index 537bb9fb1b92930e862426156f7b7b46c4cee8f9..214a66faca0b3359d8c8ce0050bd173d3de40ad0 100644 (file)
@@ -11,18 +11,14 @@ struct align_footer {
        unsigned int offset;
 };
 
-void *fio_memalign(size_t alignment, size_t size, bool shared)
+void *__fio_memalign(size_t alignment, size_t size, malloc_fn fn)
 {
        struct align_footer *f;
        void *ptr, *ret = NULL;
 
        assert(!(alignment & (alignment - 1)));
 
-       if (shared)
-               ptr = smalloc(size + alignment + sizeof(*f) - 1);
-       else
-               ptr = malloc(size + alignment + sizeof(*f) - 1);
-
+       ptr = fn(size + alignment + sizeof(*f) - 1);
        if (ptr) {
                ret = PTR_ALIGN(ptr, alignment - 1);
                f = ret + size;
@@ -32,12 +28,9 @@ void *fio_memalign(size_t alignment, size_t size, bool shared)
        return ret;
 }
 
-void fio_memfree(void *ptr, size_t size, bool shared)
+void __fio_memfree(void *ptr, size_t size, free_fn fn)
 {
        struct align_footer *f = ptr + size;
 
-       if (shared)
-               sfree(ptr - f->offset);
-       else
-               free(ptr - f->offset);
+       fn(ptr - f->offset);
 }