* Removed all Id tags.
[cacao.git] / src / mm / nogc.c
index 2124bb26f0219e3bb5ff40db6e65d6ea2d20e43a..aeb7277f9d274b539b080a2db146d99035179079 100644 (file)
@@ -1,6 +1,6 @@
 /* src/mm/nogc.c - allocates memory through malloc (no GC)
 
-   Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+   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
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   Changes:
-
-   $Id: nogc.c 5900 2006-11-04 17:30:44Z michi $
-
 */
 
 
 
 #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 ***************************************************************/
@@ -73,7 +69,7 @@ void *heap_allocate(u4 size, bool references, methodinfo *finalizer)
        mmapptr = (void *) ((ptrint) mmapptr + size);
 
        if (mmapptr > mmaptop)
-               exceptions_throw_outofmemory_exit();
+               vm_abort("heap_allocate: out of memory");
 
        MSET(m, 0, u1, size);
 
@@ -87,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 */
@@ -106,31 +90,32 @@ void heap_free(void *p)
 
 
 
-void nogc_init(u4 heapmaxsize, u4 heapstartsize)
+void gc_init(u4 heapmaxsize, u4 heapstartsize)
 {
        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)
-               exceptions_throw_outofmemory_exit();
+               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;