* src/native/vm/openjdk/management.cpp: Added support for verbose attributes.
authorMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 15 Oct 2009 08:58:01 +0000 (10:58 +0200)
committerMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 15 Oct 2009 08:58:01 +0000 (10:58 +0200)
* src/vm/os.hpp (os::getpid): Added system function wrapper.
* configure.ac: Added check for getpid function.

configure.ac
src/native/vm/openjdk/management.cpp
src/vm/os.hpp

index 20d8b2b176f02e218e23457a3e4d613b1ea1f587..401f671fc1d02073ba2a914e4044b961d1a924b3 100644 (file)
@@ -347,6 +347,7 @@ AC_CHECK_FUNCS([gethostbyname])
 AC_CHECK_FUNCS([gethostname])
 AC_CHECK_FUNCS([getloadavg])
 AC_CHECK_FUNCS([getpagesize])
+AC_CHECK_FUNCS([getpid])
 AC_CHECK_FUNCS([getrusage])
 AC_CHECK_FUNCS([getsockname])
 AC_CHECK_FUNCS([getsockopt])
index da9c3d9dace0c64d5a729b695b59a27428abffea..0b7098b9370cf140231c19ace6fc7977a530d793 100644 (file)
@@ -213,6 +213,12 @@ jboolean jmm_GetBoolAttribute(JNIEnv* env, jmmBoolAttribute att)
        jboolean result;
 
        switch (att) {
+       case JMM_VERBOSE_GC:
+               result = opt_verbosegc;
+               break;
+       case JMM_VERBOSE_CLASS:
+               result = opt_verboseclass;
+               break;
        default:
                log_println("jmm_GetBoolAttribute: Unknown attribute %d", att);
                return false;
@@ -227,6 +233,12 @@ jboolean jmm_SetBoolAttribute(JNIEnv* env, jmmBoolAttribute att, jboolean flag)
        TRACEJMMCALLS(("jmm_SetBoolAttribute(env=%p, att=%d, flag=%d)", env, att, flag));
 
        switch (att) {
+       case JMM_VERBOSE_GC:
+               opt_verbosegc = flag;
+               break;
+       case JMM_VERBOSE_CLASS:
+               opt_verboseclass = flag;
+               break;
        default:
                log_println("jmm_SetBoolAttribute: Unknown attribute %d", att);
                return false;
@@ -265,6 +277,9 @@ jlong jmm_GetLongAttribute(JNIEnv* env, jobject obj, jmmLongAttribute att)
        case JMM_JVM_INIT_DONE_TIME_MS:
                result = VM::get_current()->get_inittime();
                break;
+       case JMM_OS_PROCESS_ID:
+               result = os::getpid();
+               break;
        default:
                log_println("jmm_GetLongAttribute: Unknown attribute %d", att);
                return -1;
index c812c33f9d684eb08265f8ed0d32a328b7e77d5a..2344b536a448ba030061cb0a2dac2087e2850208 100644 (file)
@@ -141,6 +141,7 @@ public:
        static inline int     gethostname(char* name, size_t len);
        static inline int     getloadavg(double loadavg[], int nelem);
        static inline int     getpagesize(void);
+       static inline pid_t   getpid(void);
        static inline int     getsockname(int s, struct sockaddr* name, socklen_t* namelen);
        static inline int     getsockopt(int s, int level, int optname, void* optval, socklen_t* optlen);
        static inline int     listen(int sockfd, int backlog);
@@ -414,6 +415,15 @@ inline int os::getpagesize(void)
 #endif
 }
 
+inline pid_t os::getpid(void)
+{
+#if defined(HAVE_GETPID)
+       return ::getpid();
+#else
+# error getpid not available
+#endif
+}
+
 inline int os::getsockname(int s, struct sockaddr* name, socklen_t* namelen)
 {
 #if defined(HAVE_GETSOCKNAME)