summaryrefslogtreecommitdiffstats
path: root/arch/sandbox/os/libc_malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sandbox/os/libc_malloc.c')
-rw-r--r--arch/sandbox/os/libc_malloc.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/arch/sandbox/os/libc_malloc.c b/arch/sandbox/os/libc_malloc.c
new file mode 100644
index 0000000000..975c41b0ec
--- /dev/null
+++ b/arch/sandbox/os/libc_malloc.c
@@ -0,0 +1,56 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2020 Ahmad Fatoum <a.fatoum@pengutronix.de>
+ */
+
+#include <stdlib.h>
+#include <malloc.h>
+
+#define BAREBOX_ENOMEM 12
+extern int barebox_errno;
+
+void barebox_malloc_stats(void)
+{
+}
+
+void *barebox_memalign(size_t alignment, size_t bytes)
+{
+ void *mem = memalign(alignment, bytes);
+ if (!mem)
+ barebox_errno = BAREBOX_ENOMEM;
+
+ return mem;
+}
+
+void *barebox_malloc(size_t size)
+{
+
+ void *mem = malloc(size);
+ if (!mem)
+ barebox_errno = BAREBOX_ENOMEM;
+
+ return mem;
+}
+
+void barebox_free(void *ptr)
+{
+ free(ptr);
+}
+
+void *barebox_realloc(void *ptr, size_t size)
+{
+ void *mem = realloc(ptr, size);
+ if (!mem)
+ barebox_errno = BAREBOX_ENOMEM;
+
+ return mem;
+}
+
+void *barebox_calloc(size_t n, size_t elem_size)
+{
+ void *mem = calloc(n, elem_size);
+ if (!mem)
+ barebox_errno = BAREBOX_ENOMEM;
+
+ return mem;
+}