* src/threads/threadlist.hpp (ThreadList): Adapted thread counting methods to
[cacao.git] / src / vm / global.h
index a9ec8c8f9735521260e13f68e49252f7054c9f8c..45287193b1bcab37471c04ca56d04be3132fc8e4 100644 (file)
@@ -77,8 +77,10 @@ typedef union {
 /* Define printf formats which change size between 32- and 64-bit. */
 
 #if SIZEOF_VOID_P == 8
+# define PRINTF_FORMAT_INTPTR_T   "0x%016lx"
 # define PRINTF_FORMAT_INT64_T    "%ld"
 #else
+# define PRINTF_FORMAT_INTPTR_T   "0x%08lx"
 # define PRINTF_FORMAT_INT64_T    "%lld"
 #endif
 
@@ -89,6 +91,16 @@ typedef union {
 
 #define STR(a)  #a
 
+/* There are multiple definitions of MIN out there, but we cannot be sure. */
+
+#ifndef MIN
+# define MIN(a,b)  (((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef MAX
+# define MAX(a,b)  (((a) > (b)) ? (a) : (b))
+#endif
+
 
 /* forward typedefs ***********************************************************/
 
@@ -230,10 +242,12 @@ typedef struct java_objectarray_t java_objectarray_t;
 #define HDRFLAG_HASH_ATTACHED 0x20
 #define HDRFLAG_REFERENCING   0x40
 
+#include "threads/lockword.hpp"
+
 struct java_object_t {                 /* header for all objects              */
        struct _vftbl *vftbl;              /* pointer to virtual function table   */
 #if defined(ENABLE_THREADS)
-       uintptr_t      lockword;
+       Lockword       lockword;
 #endif
 #if defined(ENABLE_GC_CACAO)
        uintptr_t      hdrflags;           /* word containing the GC bits         */
@@ -321,32 +335,17 @@ struct java_objectarray_t {
 
 *******************************************************************************/
 
-#if defined(ENABLE_HANDLES)
-typedef struct java_handle_t {
-       java_object_t *heap_object;
-} java_handle_t;
-
-typedef struct java_handle_objectarray_t  { java_objectarray_t  *heap_object; } java_handle_objectarray_t;
-typedef struct java_handle_booleanarray_t { java_booleanarray_t *heap_object; } java_handle_booleanarray_t;
-typedef struct java_handle_bytearray_t    { java_bytearray_t    *heap_object; } java_handle_bytearray_t;
-typedef struct java_handle_chararray_t    { java_chararray_t    *heap_object; } java_handle_chararray_t;
-typedef struct java_handle_shortarray_t   { java_shortarray_t   *heap_object; } java_handle_shortarray_t;
-typedef struct java_handle_intarray_t     { java_intarray_t     *heap_object; } java_handle_intarray_t;
-typedef struct java_handle_longarray_t    { java_longarray_t    *heap_object; } java_handle_longarray_t;
-typedef struct java_handle_floatarray_t   { java_floatarray_t   *heap_object; } java_handle_floatarray_t;
-typedef struct java_handle_doublearray_t  { java_doublearray_t  *heap_object; } java_handle_doublearray_t;
-#else
 typedef java_object_t       java_handle_t;
-typedef java_objectarray_t  java_handle_objectarray_t;
-typedef java_booleanarray_t java_handle_booleanarray_t;
-typedef java_bytearray_t    java_handle_bytearray_t;
-typedef java_chararray_t    java_handle_chararray_t;
-typedef java_shortarray_t   java_handle_shortarray_t;
-typedef java_intarray_t     java_handle_intarray_t;
-typedef java_longarray_t    java_handle_longarray_t;
-typedef java_floatarray_t   java_handle_floatarray_t;
-typedef java_doublearray_t  java_handle_doublearray_t;
-#endif
+typedef java_handle_t       java_handle_array_t;
+typedef java_handle_array_t java_handle_objectarray_t;
+typedef java_handle_array_t java_handle_booleanarray_t;
+typedef java_handle_array_t java_handle_bytearray_t;
+typedef java_handle_array_t java_handle_chararray_t;
+typedef java_handle_array_t java_handle_shortarray_t;
+typedef java_handle_array_t java_handle_intarray_t;
+typedef java_handle_array_t java_handle_longarray_t;
+typedef java_handle_array_t java_handle_floatarray_t;
+typedef java_handle_array_t java_handle_doublearray_t;
 
 
 /* global constants related to the verifier ***********************************/