This commit introduces C++ wrapper classes for Java heap objects.
[cacao.git] / src / vm / properties.c
index 9f763f6f3ef5a6a3ca2863c915af768a3a7dc16d..599e05879ea0bb81a5ec30eef945aac3825c5417 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "config.h"
 
+#include <stdint.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <sys/utsname.h>
 
-#include "vm/types.h"
-
 #include "mm/memory.h"
 
 #include "native/jni.h"
 #include "native/llni.h"
 
-#include "vm/global.h"                      /* required by java_lang_String.h */
-#include "native/include/java_lang_String.h"
-
 #include "toolbox/list.h"
 #include "toolbox/util.h"
 
+#include "vm/global.h"
 #include "vm/properties.h"
-#include "vm/stringlocal.h"
-#include "vm/vm.h"
+#include "vm/string.hpp"
+#include "vm/vm.hpp"
 
 #include "vm/jit/asmpart.h"
 
 #include "vmcore/class.h"
 #include "vmcore/method.h"
 #include "vmcore/options.h"
-#include "vmcore/system.h"
+#include "vmcore/os.hpp"
 
 
 /* internal property structure ************************************************/
@@ -62,8 +59,8 @@
 typedef struct list_properties_entry_t list_properties_entry_t;
 
 struct list_properties_entry_t {
-       char       *key;
-       char       *value;
+       const char* key;
+       const char* value;
        listnode_t  linkage;
 };
 
@@ -108,7 +105,7 @@ void properties_set(void)
        char           *extdirs;
        char           *endorseddirs;
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
        char           *cwd;
        char           *env_user;
        char           *env_home;
@@ -139,10 +136,10 @@ void properties_set(void)
 
           Now let's strip two levels. */
 
-       p = system_dirname(p);
-       p = system_dirname(p);
+       p = os_dirname(p);
+       p = os_dirname(p);
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        /* Set java.home. */
 
@@ -157,7 +154,7 @@ void properties_set(void)
        strcpy(boot_library_path, java_home);
        strcat(boot_library_path, "/lib/classpath");
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        /* Find correct java.home.  We check if there is a JRE
           co-located. */
@@ -177,7 +174,7 @@ void properties_set(void)
 
        /* Check if that libjvm.so exists. */
 
-       if (system_access(java_home, F_OK) == 0) {
+       if (os_access(java_home, F_OK) == 0) {
                /* Yes, we add /jre to java.home. */
 
                strcpy(java_home, p);
@@ -209,15 +206,15 @@ void properties_set(void)
 #else
        java_home         = CACAO_PREFIX;
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
-       boot_library_path = CLASSPATH_LIBDIR"/classpath";
+       boot_library_path = JAVA_RUNTIME_LIBRARY_LIBDIR"/classpath";
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
-       boot_library_path = CLASSPATH_LIBDIR;
+       boot_library_path = JAVA_RUNTIME_LIBRARY_LIBDIR;
 
-# elif defined(WITH_CLASSPATH_CLDC1_1)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_CLDC1_1)
 
        /* No boot_library_path required. */
 
@@ -238,7 +235,7 @@ void properties_set(void)
        }
        else {
 #if defined(ENABLE_JRE_LAYOUT)
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
                len =
                        strlen(java_home) + strlen("/share/cacao/vm.zip:") +
@@ -253,7 +250,7 @@ void properties_set(void)
                strcat(boot_class_path, java_home);
                strcat(boot_class_path, "/share/classpath/glibj.zip");
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
                /* This is the bootclasspath taken from HotSpot (see
                   hotspot/src/share/vm/runtime/os.cpp
@@ -290,55 +287,55 @@ void properties_set(void)
 #  error unknown classpath configuration
 # endif
 #else
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
                len =
                        strlen(CACAO_VM_ZIP) +
                        strlen(":") +
-                       strlen(CLASSPATH_CLASSES) +
+                       strlen(JAVA_RUNTIME_LIBRARY_CLASSES) +
                        strlen("0");
 
                boot_class_path = MNEW(char, len);
 
                strcpy(boot_class_path, CACAO_VM_ZIP);
                strcat(boot_class_path, ":");
-               strcat(boot_class_path, CLASSPATH_CLASSES);
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_CLASSES);
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
                /* This is the bootclasspath taken from HotSpot (see
                   hotspot/src/share/vm/runtime/os.cpp
                   (os::set_boot_path)). */
 
                len =
-                       strlen(CLASSPATH_PREFIX"/lib/resources.jar:") +
-                       strlen(CLASSPATH_PREFIX"/lib/rt.jar:") +
-                       strlen(CLASSPATH_PREFIX"/lib/sunrsasign.jar:") +
-                       strlen(CLASSPATH_PREFIX"/lib/jsse.jar:") +
-                       strlen(CLASSPATH_PREFIX"/lib/jce.jar:") +
-                       strlen(CLASSPATH_PREFIX"/lib/charsets.jar:") +
-                       strlen(CLASSPATH_PREFIX"/classes") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/resources.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/rt.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/sunrsasign.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/jsse.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/jce.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/lib/charsets.jar:") +
+                       strlen(JAVA_RUNTIME_LIBRARY_PREFIX"/classes") +
                        strlen("0");
 
                boot_class_path = MNEW(char, len);
 
-               strcpy(boot_class_path, CLASSPATH_PREFIX"/lib/resources.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/lib/rt.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/lib/sunrsasign.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/lib/jsse.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/lib/jce.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/lib/charsets.jar:");
-               strcat(boot_class_path, CLASSPATH_PREFIX"/classes");
+               strcpy(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/resources.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/rt.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/sunrsasign.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/jsse.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/jce.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/lib/charsets.jar:");
+               strcat(boot_class_path, JAVA_RUNTIME_LIBRARY_PREFIX"/classes");
 
-# elif defined(WITH_CLASSPATH_CLDC1_1)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_CLDC1_1)
 
                len =
-                       strlen(CLASSPATH_CLASSES) +
+                       strlen(JAVA_RUNTIME_LIBRARY_CLASSES) +
                        strlen("0");
 
                boot_class_path = MNEW(char, len);
 
-               strcpy(boot_class_path, CLASSPATH_CLASSES);
+               strcpy(boot_class_path, JAVA_RUNTIME_LIBRARY_CLASSES);
 
 # else
 #  error unknown classpath configuration
@@ -372,7 +369,7 @@ void properties_set(void)
        properties_add("java.vm.specification.vendor", "Sun Microsystems Inc.");
        properties_add("java.vm.specification.name", "Java Virtual Machine Specification");
        properties_add("java.vm.version", VERSION);
-       properties_add("java.vm.vendor", "CACAO Team");
+       properties_add("java.vm.vendor", "CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO");
        properties_add("java.vm.name", "CACAO");
 
 # if defined(ENABLE_INTRP)
@@ -389,7 +386,7 @@ void properties_set(void)
                properties_add("java.vm.info", "JIT mode");
        }
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        /* Get properties from system. */
 
@@ -519,7 +516,7 @@ void properties_set(void)
                properties_add("user.country", "US");
        }
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        /* Actually this property is set by OpenJDK, but we need it in
           nativevm_preinit(). */
@@ -578,7 +575,7 @@ void properties_set(void)
 
 *******************************************************************************/
 
-void properties_add(char *key, char *value)
+void properties_add(const char *key, const char *value)
 {
        list_properties_entry_t *pe;
 
@@ -625,7 +622,7 @@ void properties_add(char *key, char *value)
 
 *******************************************************************************/
 
-char *properties_get(char *key)
+const char *properties_get(const char *key)
 {
        list_properties_entry_t *pe;
 
@@ -645,7 +642,7 @@ char *properties_get(char *key)
 
 *******************************************************************************/
 
-void properties_system_add(java_handle_t *p, char *key, char *value)
+void properties_system_add(java_handle_t *p, const char *key, const char *value)
 {
        classinfo     *c;
        methodinfo    *m;