* src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
[fw/sdcc] / device / lib / pic16 / libc / stdlib / free.c
index 7f6c7f14e8ef751d43d19fb943a17d67ce23e506..a11c9ecb5c8d1b5e63ee13504237362fc9c7bef2 100644 (file)
@@ -1,17 +1,36 @@
 /*
- * malloc.c - dynamic memory allocation
+ * free.c - dynamic memory allocation
  *
  * written by Vangelis Rokas, 2004 (vrokas@otenet.gr)
  *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 
+ * In other words, you are welcome to use, share and improve this program.
+ * You are forbidden to forbid anyone else to use, share and improve
+ * what you give them.   Help stamp out software-hoarding!  
+ *
+ * $Id$
  */
 
-#include "malloc.h"
+#include <malloc.h>
 
-extern char _MALLOC_SPEC *_dynamicHeap;                        /* pointer to heap */
+extern char _MALLOC_SPEC *heap;
 
 void free(unsigned char _MALLOC_SPEC *buf)
 {
-       /* mark block as deallocated */
-       ((_malloc_rec *)(buf - 1))->bits.alloc = 0;
+  /* mark block as deallocated */
+  ((_malloc_rec *)((unsigned int)buf - 1))->bits.alloc = 0;
 }