* device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
[fw/sdcc] / device / lib / calloc.c
index fa99ac4902607e6755d28a628788e3f0ef6d39c7..c30000c10bd5e82b167fcfdb7f22b92f1bd64fb3 100644 (file)
 //--------------------------------------------------------------------
 //calloc function implementation for embedded system
 //Non-ANSI keywords are C51 specific.
-// xdata - variable in external memory (just RAM)
+// __xdata - variable in external memory (just RAM)
 //--------------------------------------------------------------------
 
 #if _SDCC_MALLOC_TYPE_MLH
 
-#define xdata
+#define __xdata
 
 typedef struct _MEMHEADER MEMHEADER;
 
@@ -46,13 +46,22 @@ struct _MEMHEADER
 
 #else
 
+#define MEMHEADER   struct MAH// Memory Allocation Header
+
+MEMHEADER
+{
+  MEMHEADER __xdata *  next;
+  unsigned int         len;
+  unsigned char        mem[];
+};
+
 #define HEADER_SIZE sizeof(MEMHEADER)
 
 #endif
 
-void xdata * calloc (size_t nmemb, size_t size)
+void __xdata * calloc (size_t nmemb, size_t size)
 {
-  register void xdata * ptr;
+  register void __xdata * ptr;
 
   ptr = malloc(nmemb * size);
   if (ptr)