* Removed all Id tags.
[cacao.git] / src / mm / nogc.c
index 85eab8f2d98dabbd98c6b23b291ab89e0094ea3b..aeb7277f9d274b539b080a2db146d99035179079 100644 (file)
@@ -1,9 +1,9 @@
 /* src/mm/nogc.c - allocates memory through malloc (no GC)
 
-   Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
+   Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
+   C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+   E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
+   J. Wenninger, Institut f. Computersprachen - TU Wien
 
    This file is part of CACAO.
 
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
-
-   Contact: cacao@complang.tuwien.ac.at
-
-   Authors: Christian Thalinger
-
-   Changes:
-
-   $Id: nogc.c 3970 2005-12-21 00:11:06Z twisti $
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
 
 */
 
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <sys/mman.h>
 
-#include "config.h"
 #include "vm/types.h"
 
 #include "boehm-gc/include/gc.h"
 
-#include "mm/boehm.h"
+#include "mm/gc-common.h"
+#include "mm/memory.h"
+
 #include "toolbox/logging.h"
-#include "vm/options.h"
+
 #include "vm/builtin.h"
 #include "vm/exceptions.h"
 #include "vm/global.h"
-#include "vm/loader.h"
 #include "vm/stringlocal.h"
+#include "vm/vm.h"
+
+#include "vmcore/loader.h"
+#include "vmcore/options.h"
 
 
 /* global stuff ***************************************************************/
@@ -65,14 +63,13 @@ void *heap_allocate(u4 size, bool references, methodinfo *finalizer)
 {
        void *m;
 
-       mmapptr = (void *) ALIGN((ptrint) mmapptr, ALIGNSIZE);
+       mmapptr = (void *) MEMORY_ALIGN((ptrint) mmapptr, ALIGNSIZE);
        
        m = mmapptr;
        mmapptr = (void *) ((ptrint) mmapptr + size);
 
        if (mmapptr > mmaptop)
-               throw_cacao_exception_exit(string_java_lang_InternalError,
-                                                                  "Out of memory");
+               vm_abort("heap_allocate: out of memory");
 
        MSET(m, 0, u1, size);
 
@@ -86,18 +83,6 @@ void *heap_alloc_uncollectable(u4 size)
 }
 
 
-void *nogc_realloc(void *src, s4 len1, s4 len2)
-{
-       void *p;
-
-       p = heap_allocate(len2, false, NULL);
-
-       MCOPY(p, src, u1, len1);
-
-       return p;
-}
-
-
 void heap_free(void *p)
 {
        /* nop */
@@ -105,32 +90,32 @@ void heap_free(void *p)
 
 
 
-void nogc_init(u4 heapmaxsize, u4 heapstartsize)
+void gc_init(u4 heapmaxsize, u4 heapstartsize)
 {
-       heapmaxsize = ALIGN(heapmaxsize, ALIGNSIZE);
+       heapmaxsize = MEMORY_ALIGN(heapmaxsize, ALIGNSIZE);
 
        mmapptr = mmap((void *) MMAP_HEAPADDRESS,
                                   (size_t) heapmaxsize,
                                   PROT_READ | PROT_WRITE,
-                                  MAP_PRIVATE | MAP_ANONYMOUS,
+                                  MAP_PRIVATE |
+# if defined(MAP_ANONYMOUS)
+                                  MAP_ANONYMOUS,
+# elif defined(MAP_ANON)
+                                  MAP_ANON,
+# else
+                                  0,
+# endif
                                   -1,
                                   (off_t) 0);
 
        if (mmapptr == MAP_FAILED)
-               throw_cacao_exception_exit(string_java_lang_InternalError,
-                                                                  "Out of memory");
+               vm_abort("gc_init: out of memory");
 
        mmapsize = heapmaxsize;
        mmaptop = (void *) ((ptrint) mmapptr + mmapsize);
 }
 
 
-void gc_init(u4 heapmaxsize, u4 heapstartsize)
-{
-       /* nop */
-}
-
-
 void gc_call(void)
 {
        log_text("GC call: nothing done...");
@@ -150,6 +135,12 @@ s8 gc_get_free_bytes(void)
 }
 
 
+s8 gc_get_total_bytes(void)
+{
+       return 0;
+}
+
+
 s8 gc_get_max_heap_size(void)
 {
        return 0;