Implement internal libc memory API 50/196350/6
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 20 Dec 2018 18:06:02 +0000 (21:06 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Tue, 5 Feb 2019 11:10:04 +0000 (14:10 +0300)
Change-Id: I635d3f36fe9d8dc63fd30eb8fafeed303b14aef5
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
src/core/internal_libc.cpp
src/core/internal_libc.h

index 1f45afe..1c09935 100644 (file)
@@ -3,9 +3,36 @@
 #include "internal_libc.h"
 
 
+// Private libc API
+extern "C" void *__libc_malloc(__swap::uptr size);
+extern "C" void __libc_free(void *ptr);
+extern "C" void *__libc_calloc(__swap::uptr nmemb, __swap::uptr size);
+extern "C" void *__libc_realloc(void *ptr, __swap::uptr size);
+
+
 namespace __swap {
 namespace internal {
 
+void *malloc(uptr size)
+{
+    return __libc_malloc(size);
+}
+
+void free(void *ptr)
+{
+    __libc_free(ptr);
+}
+
+void *calloc(uptr nmemb, uptr size)
+{
+    return __libc_calloc(nmemb, size);
+}
+
+void *realloc(void *ptr, uptr size)
+{
+    return __libc_realloc(ptr, size);
+}
+
 void *memcpy(void *dest, const void *src, uptr n) noexcept
 {
     char *d = (char *)dest;
index f89be62..609d6ea 100644 (file)
@@ -6,6 +6,13 @@
 namespace __swap {
 namespace internal {
 
+// Memory API
+void *malloc(uptr size);
+void free(void *ptr);
+void *calloc(uptr nmemb, uptr size);
+void *realloc(void *ptr, uptr size);
+
+
 void *memcpy(void *dest, const void *src, uptr n) noexcept;
 int strcmp(const char *s1, const char *s2) noexcept;
 int mprotect(void *addr, uptr len, int prot) noexcept;