//--------------------------------------------------------------------
//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;
#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)