aboutsummaryrefslogtreecommitdiffstats
path: root/common/almalloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/almalloc.h')
-rw-r--r--common/almalloc.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/common/almalloc.h b/common/almalloc.h
new file mode 100644
index 00000000..a4297cf5
--- /dev/null
+++ b/common/almalloc.h
@@ -0,0 +1,30 @@
+#ifndef AL_MALLOC_H
+#define AL_MALLOC_H
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Minimum alignment required by posix_memalign. */
+#define DEF_ALIGN sizeof(void*)
+
+void *al_malloc(size_t alignment, size_t size);
+void *al_calloc(size_t alignment, size_t size);
+void al_free(void *ptr);
+
+size_t al_get_page_size(void);
+
+/**
+ * Returns non-0 if the allocation function has direct alignment handling.
+ * Otherwise, the standard malloc is used with an over-allocation and pointer
+ * offset strategy.
+ */
+int al_is_sane_alignment_allocator(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AL_MALLOC_H */