* device/lib/calloc.c,
* device/lib/free.c,
* device/lib/malloc.c,
* device/lib/realloc.c: moved definition of struct into sources
* support/regression/tests/malloc.c: use void* for init_dynamic_memory()
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4443
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/malloc.h,
+ * device/lib/calloc.c,
+ * device/lib/free.c,
+ * device/lib/malloc.c,
+ * device/lib/realloc.c: moved definition of struct into sources
+ * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
+
2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
* as/asx8051.dsp: corrected output directories
#else
-#define MEMHEADER struct MAH// Memory Allocation Header
-
-MEMHEADER
-{
- MEMHEADER __xdata * next;
- unsigned int len;
- unsigned char mem[];
-};
-
extern void init_dynamic_memory(void xdata * heap, unsigned int size);
extern void xdata * calloc (size_t nmemb, size_t size);
extern void xdata * malloc (size_t size);
#else
+#define MEMHEADER struct MAH// Memory Allocation Header
+
+MEMHEADER
+{
+ MEMHEADER __xdata * next;
+ unsigned int len;
+ unsigned char mem[];
+};
+
#define HEADER_SIZE sizeof(MEMHEADER)
#endif
// xdata - variable in external memory (just RAM)
//--------------------------------------------------------------------
+ #define MEMHEADER struct MAH// Memory Allocation Header
+
+ MEMHEADER
+ {
+ MEMHEADER __xdata * next;
+ unsigned int len;
+ unsigned char mem[];
+ };
+
#define HEADER_SIZE sizeof(MEMHEADER)
//Static here means: can be accessed from this module only
// xdata - variable in external memory (just RAM)
//--------------------------------------------------------------------
+ #define MEMHEADER struct MAH// Memory Allocation Header
+
+ MEMHEADER
+ {
+ MEMHEADER __xdata * next;
+ unsigned int len;
+ unsigned char mem[];
+ };
+
#define HEADER_SIZE sizeof(MEMHEADER)
MEMHEADER xdata * _sdcc_first_memheader;
if ( !array ) //Reserved memory starts at 0x0000 but that's NULL...
{ //So, we lost one byte!
- array++;
- size--;
+ array++;
+ size--;
}
_sdcc_first_memheader = (MEMHEADER xdata * ) array;
//Reserve a mem for last header
{
if (!current_header->len)
{ //This code works only for first_header in the list and only
- current_header->len = size; //for first allocation
+ current_header->len = size; //for first allocation
}
else
{ //else create new header at the begin of spare
#else
+#define MEMHEADER struct MAH// Memory Allocation Header
+
+MEMHEADER
+{
+ MEMHEADER __xdata * next;
+ unsigned int len;
+ unsigned char mem[];
+};
+
#define HEADER_SIZE sizeof(MEMHEADER)
#define MEM(x) (x->mem)
#if defined(SDCC_pic16)
_initHeap(heap, sizeof heap);
#else
- init_dynamic_memory((MEMHEADER xdata *)heap, sizeof(heap));
+ init_dynamic_memory(heap, sizeof(heap));
#endif
p1 = malloc(200);