]> git.gag.com Git - fw/sdcc/commitdiff
* device/include/malloc.h,
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 29 Oct 2006 19:47:53 +0000 (19:47 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 29 Oct 2006 19:47:53 +0000 (19:47 +0000)
* 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

ChangeLog
device/include/malloc.h
device/lib/calloc.c
device/lib/free.c
device/lib/malloc.c
device/lib/realloc.c
support/regression/tests/malloc.c

index 121a959b9c0a82663b196645c0db053624e3ea9e..6a81142756ec1b02a6eab2e4a85ff9296c94fbbc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+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
 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * as/asx8051.dsp: corrected output directories
index 718d14471af8f92cf148d1b74ac4c610fb1eb85c..9be8cec55045057671a197499f4a3340eadd211b 100644 (file)
@@ -36,15 +36,6 @@ void free (void * ptr);
 
 #else
 
 
 #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);
 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);
index fa99ac4902607e6755d28a628788e3f0ef6d39c7..343b4f621d0cb10c940e4b0478710908db7d5302 100644 (file)
@@ -46,6 +46,15 @@ struct _MEMHEADER
 
 #else
 
 
 #else
 
+#define MEMHEADER   struct MAH// Memory Allocation Header
+
+MEMHEADER
+{
+  MEMHEADER __xdata *  next;
+  unsigned int         len;
+  unsigned char        mem[];
+};
+
 #define HEADER_SIZE sizeof(MEMHEADER)
 
 #endif
 #define HEADER_SIZE sizeof(MEMHEADER)
 
 #endif
index 9634434c7387b05132791dd9c98d47311d408c52..b592e4d6348179e4f24104f2408236a37c1ca7c0 100644 (file)
@@ -101,6 +101,15 @@ free (void *p)
             // xdata - variable in external memory (just RAM)
             //--------------------------------------------------------------------
 
             // 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
             #define HEADER_SIZE sizeof(MEMHEADER)
 
             //Static here means: can be accessed from this module only
index c1e5a44dc28435c56ede11266f3848221ff0879a..8c8d5c7f1c3006e42d28c3d0085267c96e9c7bb1 100644 (file)
@@ -139,6 +139,15 @@ malloc (unsigned int size)
             // xdata - variable in external memory (just RAM)
             //--------------------------------------------------------------------
 
             // 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;
             #define HEADER_SIZE sizeof(MEMHEADER)
 
             MEMHEADER xdata * _sdcc_first_memheader;
@@ -168,8 +177,8 @@ malloc (unsigned int size)
 
               if ( !array ) //Reserved memory starts at 0x0000 but that's NULL...
               {             //So, we lost one byte!
 
               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
               }
               _sdcc_first_memheader = (MEMHEADER xdata * ) array;
               //Reserve a mem for last header
@@ -217,7 +226,7 @@ malloc (unsigned int size)
                 {
                   if (!current_header->len)
                   { //This code works only for first_header in the list and only
                 {
                   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
                   { //else create new header at the begin of spare
index 0702e3b733428f6c1bda5a5082aa703dab8643b6..4fad06e9b301053f638715aae689acc1e8f2b50d 100644 (file)
@@ -53,6 +53,15 @@ struct _MEMHEADER
 
 #else
 
 
 #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)
 
 #define HEADER_SIZE sizeof(MEMHEADER)
 #define MEM(x)      (x->mem)
 
index 319de73b7a03dbc0dba02093c321aca9aacb0e6d..593f8c5e0d706442b90d3d779201fb0c8d96c262 100644 (file)
@@ -19,7 +19,7 @@ testMalloc(void)
 #if defined(SDCC_pic16)
   _initHeap(heap, sizeof heap);
 #else
 #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);
 #endif
 
   p1 = malloc(200);