|
@@ -14,11 +14,21 @@
|
|
|
|
|
|
/* Code active when included from pre-boot environment: */
|
|
|
|
|
|
+/*
|
|
|
+ * Some architectures want to ensure there is no local data in their
|
|
|
+ * pre-boot environment, so that data can arbitarily relocated (via
|
|
|
+ * GOT references). This is achieved by defining STATIC_RW_DATA to
|
|
|
+ * be null.
|
|
|
+ */
|
|
|
+#ifndef STATIC_RW_DATA
|
|
|
+#define STATIC_RW_DATA static
|
|
|
+#endif
|
|
|
+
|
|
|
/* A trivial malloc implementation, adapted from
|
|
|
* malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
|
|
|
*/
|
|
|
-static unsigned long malloc_ptr;
|
|
|
-static int malloc_count;
|
|
|
+STATIC_RW_DATA unsigned long malloc_ptr;
|
|
|
+STATIC_RW_DATA int malloc_count;
|
|
|
|
|
|
static void *malloc(int size)
|
|
|
{
|