summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-11 17:21:03 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-11 18:09:50 +0200
commit20632e4d3f580b989fa14f58b72896e2cfdeb34b (patch)
treea89943325977e344a58a6ec67bf5cd3b9e6e2437
parente7db8171d83b31cd44b253f7291197cdbcefbbfd (diff)
stm: Provide malloc()/realloc()/free(), as forwarding to gc_*() functions.
Note: none of these functions are used by STM port, so they're provided to have parity with pre gc refactor status quo, and in case they will be needed in the future by some extension writers.
-rw-r--r--stm/mpconfigport.h8
-rw-r--r--stm/std.h4
2 files changed, 8 insertions, 4 deletions
diff --git a/stm/mpconfigport.h b/stm/mpconfigport.h
index fd7af29d2..1d79243f9 100644
--- a/stm/mpconfigport.h
+++ b/stm/mpconfigport.h
@@ -21,6 +21,14 @@ typedef float machine_float_t;
machine_float_t machine_sqrt(machine_float_t x);
+// There is no classical C heap in bare-metal ports, only Python
+// garbage-collected heap. For completeness, emulate C heap via
+// GC heap. Note that MicroPython core never uses malloc() and friends,
+// so these defines are mostly to help extension module writers.
+#define malloc gc_alloc
+#define free gc_free
+#define realloc gc_realloc
+
// board specific definitions
// choose 1 of these boards
diff --git a/stm/std.h b/stm/std.h
index a2bf70617..843ddd827 100644
--- a/stm/std.h
+++ b/stm/std.h
@@ -2,10 +2,6 @@ typedef unsigned int size_t;
void __assert_func(void);
-void *malloc(size_t n);
-void free(void *ptr);
-void *realloc(void *ptr, size_t n);
-
void *memcpy(void *dest, const void *src, size_t n);
void *memmove(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);