summaryrefslogtreecommitdiff
path: root/libjava/gnu/java/lang/management
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/lang/management')
-rw-r--r--libjava/gnu/java/lang/management/BeanImpl.h69
-rw-r--r--libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h40
-rw-r--r--libjava/gnu/java/lang/management/CompilationMXBeanImpl.h42
-rw-r--r--libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h37
-rw-r--r--libjava/gnu/java/lang/management/MemoryMXBeanImpl.h70
-rw-r--r--libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h46
-rw-r--r--libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h60
-rw-r--r--libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h40
-rw-r--r--libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h58
-rw-r--r--libjava/gnu/java/lang/management/ThreadMXBeanImpl.h74
-rw-r--r--libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h40
-rw-r--r--libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java89
-rw-r--r--libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h37
-rw-r--r--libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java66
-rw-r--r--libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h38
-rw-r--r--libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java80
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h41
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java109
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h40
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java95
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h51
-rw-r--r--libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java195
-rw-r--r--libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.h37
-rw-r--r--libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java68
-rw-r--r--libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h43
-rw-r--r--libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java109
-rw-r--r--libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h56
-rw-r--r--libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java236
-rw-r--r--libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc49
-rw-r--r--libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc11
-rw-r--r--libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc18
-rw-r--r--libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc47
-rw-r--r--libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc11
-rw-r--r--libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc111
-rw-r--r--libjava/gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc18
-rw-r--r--libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc39
-rw-r--r--libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc83
37 files changed, 2353 insertions, 0 deletions
diff --git a/libjava/gnu/java/lang/management/BeanImpl.h b/libjava/gnu/java/lang/management/BeanImpl.h
new file mode 100644
index 000000000..463d617f3
--- /dev/null
+++ b/libjava/gnu/java/lang/management/BeanImpl.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_BeanImpl__
+#define __gnu_java_lang_management_BeanImpl__
+
+#pragma interface
+
+#include <javax/management/StandardMBean.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class BeanImpl;
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace management
+ {
+ class MBeanConstructorInfo;
+ class MBeanInfo;
+ class MBeanOperationInfo;
+ class MBeanParameterInfo;
+ namespace openmbean
+ {
+ class OpenMBeanInfo;
+ class OpenMBeanParameterInfo;
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::BeanImpl : public ::javax::management::StandardMBean
+{
+
+public: // actually protected
+ BeanImpl(::java::lang::Class *);
+ virtual void cacheMBeanInfo(::javax::management::MBeanInfo *);
+ virtual void checkMonitorPermissions();
+ virtual void checkControlPermissions();
+public:
+ virtual ::java::lang::Object * getAttribute(::java::lang::String *);
+public: // actually protected
+ virtual ::javax::management::MBeanInfo * getCachedMBeanInfo();
+ virtual ::java::lang::String * getDescription(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint);
+ virtual ::java::lang::String * getDescription(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint);
+ virtual ::java::lang::String * getParameterName(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint);
+ virtual ::java::lang::String * getParameterName(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint);
+public:
+ virtual ::javax::management::MBeanInfo * getMBeanInfo();
+private:
+ JArray< ::javax::management::openmbean::OpenMBeanParameterInfo * > * translateSignature(JArray< ::javax::management::MBeanParameterInfo * > *);
+ ::javax::management::openmbean::OpenMBeanInfo * __attribute__((aligned(__alignof__( ::javax::management::StandardMBean)))) openInfo;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_BeanImpl__
diff --git a/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h b/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h
new file mode 100644
index 000000000..c03db2324
--- /dev/null
+++ b/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_ClassLoadingMXBeanImpl__
+#define __gnu_java_lang_management_ClassLoadingMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class ClassLoadingMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::ClassLoadingMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ ClassLoadingMXBeanImpl();
+ jint getLoadedClassCount();
+ jlong getTotalLoadedClassCount();
+ jlong getUnloadedClassCount();
+ jboolean isVerbose();
+ void setVerbose(jboolean);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_ClassLoadingMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h b/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h
new file mode 100644
index 000000000..c11d3fb83
--- /dev/null
+++ b/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_CompilationMXBeanImpl__
+#define __gnu_java_lang_management_CompilationMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class CompilationMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::CompilationMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ CompilationMXBeanImpl();
+ ::java::lang::String * getName();
+ jboolean isCompilationTimeMonitoringSupported();
+ jlong getTotalCompilationTime();
+private:
+ static ::java::lang::String * COMPILER_NAME;
+ static ::java::lang::String * COMPILATION_TIME_SUPPORT;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_CompilationMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h b/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h
new file mode 100644
index 000000000..cfefdb653
--- /dev/null
+++ b/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_GarbageCollectorMXBeanImpl__
+#define __gnu_java_lang_management_GarbageCollectorMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/MemoryManagerMXBeanImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class GarbageCollectorMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::GarbageCollectorMXBeanImpl : public ::gnu::java::lang::management::MemoryManagerMXBeanImpl
+{
+
+public:
+ GarbageCollectorMXBeanImpl(::java::lang::String *);
+ jlong getCollectionCount();
+ jlong getCollectionTime();
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_GarbageCollectorMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h
new file mode 100644
index 000000000..3c87a0f35
--- /dev/null
+++ b/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_MemoryMXBeanImpl__
+#define __gnu_java_lang_management_MemoryMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class MemoryMXBeanImpl;
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace management
+ {
+ class MBeanNotificationInfo;
+ class NotificationFilter;
+ class NotificationListener;
+ namespace openmbean
+ {
+ class CompositeType;
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::MemoryMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ MemoryMXBeanImpl();
+ void gc();
+ ::java::lang::management::MemoryUsage * getHeapMemoryUsage();
+ ::java::lang::management::MemoryUsage * getNonHeapMemoryUsage();
+ jint getObjectPendingFinalizationCount();
+ jboolean isVerbose();
+ void setVerbose(jboolean);
+ void addNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
+ JArray< ::javax::management::MBeanNotificationInfo * > * getNotificationInfo();
+ void removeNotificationListener(::javax::management::NotificationListener *);
+ void removeNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
+public: // actually package-private
+ void fireNotification(::java::lang::String *, ::java::lang::String *, jlong, jlong, jlong, jlong, jlong);
+ void fireThresholdExceededNotification(::java::lang::String *, jlong, jlong, jlong, jlong, jlong);
+ void fireCollectionThresholdExceededNotification(::java::lang::String *, jlong, jlong, jlong, jlong, jlong);
+private:
+ ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) listeners;
+ jlong notificationCount;
+public:
+ static ::javax::management::openmbean::CompositeType * notifType;
+ static ::javax::management::openmbean::CompositeType * usageType;
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_MemoryMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h
new file mode 100644
index 000000000..2ddbf70ea
--- /dev/null
+++ b/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_MemoryManagerMXBeanImpl__
+#define __gnu_java_lang_management_MemoryManagerMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class MemoryManagerMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::MemoryManagerMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ MemoryManagerMXBeanImpl(::java::lang::String *);
+public: // actually protected
+ MemoryManagerMXBeanImpl(::java::lang::String *, ::java::lang::Class *);
+public:
+ virtual JArray< ::java::lang::String * > * getMemoryPoolNames();
+ virtual ::java::lang::String * getName();
+ virtual jboolean isValid();
+public: // actually protected
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_MemoryManagerMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h
new file mode 100644
index 000000000..ff3734d28
--- /dev/null
+++ b/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_MemoryPoolMXBeanImpl__
+#define __gnu_java_lang_management_MemoryPoolMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class MemoryPoolMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::MemoryPoolMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ MemoryPoolMXBeanImpl(::java::lang::String *);
+ ::java::lang::management::MemoryUsage * getCollectionUsage();
+ jlong getCollectionUsageThreshold();
+ jlong getCollectionUsageThresholdCount();
+ JArray< ::java::lang::String * > * getMemoryManagerNames();
+ ::java::lang::String * getName();
+ ::java::lang::management::MemoryUsage * getPeakUsage();
+ ::java::lang::management::MemoryType * getType();
+ ::java::lang::management::MemoryUsage * getUsage();
+ jlong getUsageThreshold();
+ jlong getUsageThresholdCount();
+ jboolean isCollectionUsageThresholdExceeded();
+ jboolean isCollectionUsageThresholdSupported();
+ jboolean isUsageThresholdExceeded();
+ jboolean isUsageThresholdSupported();
+ jboolean isValid();
+ void resetPeakUsage();
+ void setCollectionUsageThreshold(jlong);
+ void setUsageThreshold(jlong);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) name;
+ static ::java::lang::String * COLLECTION_USAGE_THRESHOLD;
+ static ::java::lang::String * USAGE_THRESHOLD;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_MemoryPoolMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h b/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h
new file mode 100644
index 000000000..af79980b2
--- /dev/null
+++ b/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_OperatingSystemMXBeanImpl__
+#define __gnu_java_lang_management_OperatingSystemMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class OperatingSystemMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::OperatingSystemMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ OperatingSystemMXBeanImpl();
+ ::java::lang::String * getArch();
+ jint getAvailableProcessors();
+ ::java::lang::String * getName();
+ jdouble getSystemLoadAverage();
+ ::java::lang::String * getVersion();
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_OperatingSystemMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h b/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h
new file mode 100644
index 000000000..f46f6df2c
--- /dev/null
+++ b/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_RuntimeMXBeanImpl__
+#define __gnu_java_lang_management_RuntimeMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class RuntimeMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::RuntimeMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ RuntimeMXBeanImpl();
+ ::java::lang::String * getBootClassPath();
+ ::java::lang::String * getClassPath();
+ ::java::util::List * getInputArguments();
+ ::java::lang::String * getLibraryPath();
+ ::java::lang::String * getManagementSpecVersion();
+ ::java::lang::String * getName();
+ ::java::lang::String * getSpecName();
+ ::java::lang::String * getSpecVendor();
+ ::java::lang::String * getSpecVersion();
+ jlong getStartTime();
+ ::java::util::Map * getSystemProperties();
+ jlong getUptime();
+ ::java::lang::String * getVmName();
+ ::java::lang::String * getVmVendor();
+ ::java::lang::String * getVmVersion();
+ jboolean isBootClassPathSupported();
+private:
+ static ::java::lang::String * SUN_BOOT_CLASS_PATH;
+ static ::java::lang::String * JAVA_BOOT_CLASS_PATH;
+ jlong __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) startTime;
+ ::java::lang::String * bootClassPath;
+ jboolean bootClassPathSupported;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_RuntimeMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h b/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h
new file mode 100644
index 000000000..6127548f5
--- /dev/null
+++ b/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h
@@ -0,0 +1,74 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_ThreadMXBeanImpl__
+#define __gnu_java_lang_management_ThreadMXBeanImpl__
+
+#pragma interface
+
+#include <gnu/java/lang/management/BeanImpl.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class ThreadMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::ThreadMXBeanImpl : public ::gnu::java::lang::management::BeanImpl
+{
+
+public:
+ ThreadMXBeanImpl();
+ JArray< ::java::lang::management::ThreadInfo * > * dumpAllThreads(jboolean, jboolean);
+ JArray< jlong > * findDeadlockedThreads();
+ JArray< jlong > * findMonitorDeadlockedThreads();
+ JArray< jlong > * getAllThreadIds();
+ jlong getCurrentThreadCpuTime();
+ jlong getCurrentThreadUserTime();
+ jint getDaemonThreadCount();
+ jint getPeakThreadCount();
+ jint getThreadCount();
+ jlong getThreadCpuTime(jlong);
+ ::java::lang::management::ThreadInfo * getThreadInfo(jlong);
+ JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *);
+ ::java::lang::management::ThreadInfo * getThreadInfo(jlong, jint);
+ JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *, jint);
+ JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *, jboolean, jboolean);
+ jlong getThreadUserTime(jlong);
+ jlong getTotalStartedThreadCount();
+ jboolean isCurrentThreadCpuTimeSupported();
+ jboolean isObjectMonitorUsageSupported();
+ jboolean isSynchronizerUsageSupported();
+ jboolean isThreadContentionMonitoringEnabled();
+ jboolean isThreadContentionMonitoringSupported();
+ jboolean isThreadCpuTimeEnabled();
+ jboolean isThreadCpuTimeSupported();
+ void resetPeakThreadCount();
+ void setThreadContentionMonitoringEnabled(jboolean);
+ void setThreadCpuTimeEnabled(jboolean);
+private:
+ static ::java::lang::String * CURRENT_THREAD_TIME_SUPPORT;
+ static ::java::lang::String * THREAD_TIME_SUPPORT;
+ static ::java::lang::String * CONTENTION_SUPPORT;
+ static ::java::lang::String * TIME_ENABLED;
+ static ::java::lang::String * MONITOR_SUPPORT;
+ static ::java::lang::String * SYNCHRONIZER_SUPPORT;
+ jboolean __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) timeEnabled;
+ jboolean contentionEnabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_ThreadMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h
new file mode 100644
index 000000000..b38100446
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMClassLoadingMXBeanImpl__
+#define __gnu_java_lang_management_VMClassLoadingMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMClassLoadingMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMClassLoadingMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMClassLoadingMXBeanImpl();
+ static jint getLoadedClassCount();
+ static jlong getUnloadedClassCount();
+ static jboolean isVerbose();
+ static void setVerbose(jboolean);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMClassLoadingMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java
new file mode 100644
index 000000000..c1c7d13dd
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java
@@ -0,0 +1,89 @@
+/* VMClassLoadingMXBeanImpl.java - VM impl. of a class loading bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+/**
+ * Provides access to information about the class loading
+ * behaviour of the current invocation of the virtual
+ * machine. Instances of this bean are obtained by calling
+ * {@link ManagementFactory#getClassLoadingMXBean()}.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMClassLoadingMXBeanImpl
+{
+
+ /**
+ * Returns the number of classes currently loaded by
+ * the virtual machine.
+ *
+ * @return the number of loaded classes.
+ */
+ static native int getLoadedClassCount();
+
+ /**
+ * Returns the number of classes that have been unloaded
+ * by the virtual machine since it was started.
+ *
+ * @return the number of unloaded classes.
+ */
+ static native long getUnloadedClassCount();
+
+ /**
+ * Returns true if the virtual machine will emit additional
+ * information when classes are loaded and unloaded. The
+ * format of the output is left up to the virtual machine.
+ *
+ * @return true if verbose class loading output is on.
+ */
+ static native boolean isVerbose();
+
+ /**
+ * Turns on or off the emission of additional information
+ * when classes are loaded and unloaded. The format of the
+ * output is left up to the virtual machine. This method
+ * may be called by multiple threads concurrently, but there
+ * is only one global setting of verbosity that is affected.
+ *
+ * @param verbose the new setting for verbose class loading
+ * output.
+ */
+ static native void setVerbose(boolean verbose);
+
+}
diff --git a/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h
new file mode 100644
index 000000000..31967e134
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMCompilationMXBeanImpl__
+#define __gnu_java_lang_management_VMCompilationMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMCompilationMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMCompilationMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMCompilationMXBeanImpl();
+ static jlong getTotalCompilationTime();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMCompilationMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java
new file mode 100644
index 000000000..b9b5bbcef
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java
@@ -0,0 +1,66 @@
+/* VMCompilationMXBeanImpl.java - VM implementation of a compilation bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+/**
+ * Provides access to information about the JIT
+ * compiler of the virtual machine, if one exists.
+ * Instances of this bean are obtained by calling
+ * {@link ManagementFactory#getCompilationMXBean()},
+ * if this is the case.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMCompilationMXBeanImpl
+{
+
+ /**
+ * Returns the number of milliseconds the JIT
+ * compiler has spent compiling Java bytecode
+ * to native machine code. This is only called
+ * if a JIT compiler exists and the
+ * gnu.java.lang.management.CompilationTimeSupport
+ * property has been set.
+ *
+ * @return the number of milliseconds spent
+ * compiling.
+ */
+ static native long getTotalCompilationTime();
+
+}
diff --git a/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h
new file mode 100644
index 000000000..b01f97cd8
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__
+#define __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMGarbageCollectorMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMGarbageCollectorMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMGarbageCollectorMXBeanImpl();
+ static jlong getCollectionCount(::java::lang::String *);
+ static jlong getCollectionTime(::java::lang::String *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java
new file mode 100644
index 000000000..2a202849a
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java
@@ -0,0 +1,80 @@
+/* VMGarbageCollectorMXBeanImpl.java - VM interface for a GC bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+/**
+ * Provides access to information about the garbage collectors
+ * of the virtual machine. Garbage collectors are responsible
+ * for removing unreferenced objects from memory. A garbage
+ * collector is a type of memory manager, so this interface
+ * is combined with that of generic memory managers. An instance
+ * of this bean for each garbage collector is obtained by calling
+ * {@link ManagementFactory#getGarbageCollectorMXBeans()}.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMGarbageCollectorMXBeanImpl
+{
+
+ /**
+ * Returns the number of collections the garbage collector
+ * represented by this bean has made. -1 is returned if the
+ * collection count is undefined.
+ *
+ * @param name the name of the garbage collector.
+ * @return the number of collections made, or -1 if this is
+ * undefined.
+ */
+ static native long getCollectionCount(String name);
+
+ /**
+ * Returns the accumulated number of milliseconds this garbage
+ * collector has spent freeing the memory used by unreferenced
+ * objects. -1 is returned if the collection time is undefined.
+ * Note that the accumulated time may not change, even when the
+ * collection count increases, if the time taken is sufficiently
+ * short; this depends on the resolution of the timer used.
+ *
+ * @param name the name of the garbage collector.
+ * @return the accumulated number of milliseconds spent collecting,
+ * or -1 if this is undefined.
+ */
+ static native long getCollectionTime(String name);
+
+}
diff --git a/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h
new file mode 100644
index 000000000..a31c551c3
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMMemoryMXBeanImpl__
+#define __gnu_java_lang_management_VMMemoryMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMMemoryMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMMemoryMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMMemoryMXBeanImpl();
+ static ::java::lang::management::MemoryUsage * getHeapMemoryUsage();
+ static ::java::lang::management::MemoryUsage * getNonHeapMemoryUsage();
+ static jint getObjectPendingFinalizationCount();
+ static jboolean isVerbose();
+ static void setVerbose(jboolean);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMMemoryMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java
new file mode 100644
index 000000000..193e33535
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java
@@ -0,0 +1,109 @@
+/* VMMemoryMXBeanImpl.java - VM impl. of a memory bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import java.lang.management.MemoryUsage;
+
+/**
+ * Provides access to information about the memory
+ * management of the current invocation of the virtual
+ * machine. Instances of this bean are obtained by calling
+ * {@link ManagementFactory#getMemoryMXBean()}.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMMemoryMXBeanImpl
+{
+
+ /**
+ * Returns an instance of {@link java.lang.management.MemoryUsage}
+ * with appropriate initial, used, committed and maximum values
+ * for the heap. By default, this uses the methods of
+ * {@link java.lang.Runtime} to provide some of the values.
+ *
+ * @return an {@link java.lang.management.MemoryUsage} instance
+ * for the heap.
+ */
+ static MemoryUsage getHeapMemoryUsage()
+ {
+ Runtime runtime = Runtime.getRuntime();
+ long totalMem = runtime.totalMemory();
+ return new MemoryUsage(-1, totalMem - runtime.freeMemory(),
+ totalMem, runtime.maxMemory());
+ }
+
+ /**
+ * Returns an instance of {@link java.lang.management.MemoryUsage}
+ * with appropriate initial, used, committed and maximum values
+ * for non-heap memory.
+ *
+ * @return an {@link java.lang.management.MemoryUsage} instance
+ * for non-heap memory.
+ */
+ static native MemoryUsage getNonHeapMemoryUsage();
+
+ /**
+ * Returns the number of objects ready to be garbage collected.
+ *
+ * @return the number of finalizable objects.
+ */
+ static native int getObjectPendingFinalizationCount();
+
+ /**
+ * Returns true if the virtual machine will emit additional
+ * information when memory is allocated and deallocated. The
+ * format of the output is left up to the virtual machine.
+ *
+ * @return true if verbose class loading output is on.
+ */
+ static native boolean isVerbose();
+
+ /**
+ * Turns on or off the emission of additional information
+ * when memory is allocated and deallocated. The format of the
+ * output is left up to the virtual machine. This method
+ * may be called by multiple threads concurrently, but there
+ * is only one global setting of verbosity that is affected.
+ *
+ * @param verbose the new setting for verbose class loading
+ * output.
+ */
+ static native void setVerbose(boolean verbose);
+
+}
diff --git a/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h
new file mode 100644
index 000000000..3a174c82a
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__
+#define __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMMemoryManagerMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMMemoryManagerMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMMemoryManagerMXBeanImpl();
+ static JArray< ::java::lang::String * > * getMemoryPoolNames(::java::lang::String *);
+ static jboolean isValid(::java::lang::String *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java
new file mode 100644
index 000000000..0a4204a6d
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java
@@ -0,0 +1,95 @@
+/* VMMemoryManagerMXBeanImpl.java - VM interface for a memory manager bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryPoolMXBean;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Provides access to information about the memory managers
+ * of the virtual machine. An instance of this bean for each
+ * memory manager is obtained by calling
+ * {@link ManagementFactory#getMemoryManagerMXBeans()}.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMMemoryManagerMXBeanImpl
+{
+
+ /**
+ * Returns an array containing the names of the memory pools
+ * this memory manager manages.
+ *
+ * @param name the name of the memory manager.
+ * @return an array containing the name of each memory pool
+ * this manager is responsible for.
+ */
+ static String[] getMemoryPoolNames(String name)
+ {
+ List managedPools = new ArrayList();
+ Iterator beans = ManagementFactory.getMemoryPoolMXBeans().iterator();
+ while (beans.hasNext())
+ {
+ MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next();
+ String[] managers = bean.getMemoryManagerNames();
+ for (int a = 0; a < managers.length; ++a)
+ if (managers[a].equals(name))
+ {
+ managedPools.add(bean.getName());
+ break;
+ }
+ }
+ return (String[]) managedPools.toArray(new String[managedPools.size()]);
+ }
+
+ /**
+ * Returns true if this memory manager is still valid. A memory
+ * manager becomes invalid when it is removed by the virtual machine
+ * and no longer used.
+ *
+ * @param name the name of the memory manager.
+ * @return true if this memory manager is valid.
+ */
+ static native boolean isValid(String name);
+
+}
diff --git a/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h
new file mode 100644
index 000000000..623162ee8
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__
+#define __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMMemoryPoolMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMMemoryPoolMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMMemoryPoolMXBeanImpl();
+ static ::java::lang::management::MemoryUsage * getCollectionUsage(::java::lang::String *);
+ static jlong getCollectionUsageThreshold(::java::lang::String *);
+ static jlong getCollectionUsageThresholdCount(::java::lang::String *);
+ static JArray< ::java::lang::String * > * getMemoryManagerNames(::java::lang::String *);
+ static ::java::lang::management::MemoryUsage * getPeakUsage(::java::lang::String *);
+ static ::java::lang::String * getType(::java::lang::String *);
+ static ::java::lang::management::MemoryUsage * getUsage(::java::lang::String *);
+ static jlong getUsageThreshold(::java::lang::String *);
+ static jlong getUsageThresholdCount(::java::lang::String *);
+ static jboolean isValid(::java::lang::String *);
+ static void resetPeakUsage(::java::lang::String *);
+ static void setCollectionUsageThreshold(::java::lang::String *, jlong);
+ static void setUsageThreshold(::java::lang::String *, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java
new file mode 100644
index 000000000..723d4e897
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java
@@ -0,0 +1,195 @@
+/* MemoryPoolMXBeanImpl.java - VM interface for memory pool beans
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import java.lang.management.MemoryUsage;
+
+/**
+ * Provides access to information on the memory resources or
+ * pools used by the current invocation of the virtual machine.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMMemoryPoolMXBeanImpl
+{
+
+ /**
+ * Returns memory usage statistics for the specified pool
+ * just after a best-effort attempt to free memory. This
+ * is valid only for certain garbage collectors.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return a {@link java.lang.management.MemoryUsage} object
+ * containing the statistics or <code>null</code>
+ * if this pool does not support such statistics.
+ */
+ static native MemoryUsage getCollectionUsage(String name);
+
+ /**
+ * Returns the collection usage threshold for the specified pool.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.CollectionUsageThresholdSupport</code>,
+ * is defined). The value is initially zero.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return the collection usage threshold.
+ */
+ static native long getCollectionUsageThreshold(String name);
+
+ /**
+ * Returns the number of times the collection usage threshold
+ * has been met or exceeded by the specified pool.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.CollectionUsageThresholdSupport</code>,
+ * is defined).
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return the collection usage threshold count.
+ */
+ static native long getCollectionUsageThresholdCount(String name);
+
+ /**
+ * Returns an array of names of memory managers which manage
+ * the specified pool.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return a list of memory managers for the pool.
+ */
+ static native String[] getMemoryManagerNames(String name);
+
+ /**
+ * Returns the peak usage level of the specified pool.
+ * This is only called if the pool is valid.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return a {@link java.lang.management.MemoryUsage} object
+ * containing the statistics.
+ */
+ static native MemoryUsage getPeakUsage(String name);
+
+ /**
+ * Returns the type of memory used by the specified pool.
+ * The value must be either "HEAP" or "NON_HEAP".
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return the type of the given pool.
+ */
+ static native String getType(String name);
+
+ /**
+ * Returns the current usage level of the specified pool.
+ * This is only called if the pool is valid.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return a {@link java.lang.management.MemoryUsage} object
+ * containing the statistics.
+ */
+ static native MemoryUsage getUsage(String name);
+
+ /**
+ * Returns the usage threshold for the specified pool.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.UsageThresholdSupport</code>,
+ * is defined). The value is initially defined by the
+ * virtual machine.
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return the usage threshold.
+ */
+ static native long getUsageThreshold(String name);
+
+ /**
+ * Returns the number of times the usage threshold
+ * has been met or exceeded by the specified pool.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.UsageThresholdSupport</code>,
+ * is defined).
+ *
+ * @param name the name of the pool to obtain statistics on.
+ * @return the usage threshold count.
+ */
+ static native long getUsageThresholdCount(String name);
+
+ /**
+ * Returns true if the specified pool is still valid i.e.
+ * it is still in use by the virtual machine.
+ *
+ * @param name the name of the pool to check the validity of.
+ * @return true if the pool is valid.
+ */
+ static native boolean isValid(String name);
+
+ /**
+ * Resets the peak usage level to the current usage level for
+ * the specified pool.
+ *
+ * @param name the name of the pool to reset the peak usage of.
+ */
+ static native void resetPeakUsage(String name);
+
+ /**
+ * Sets the collection usage threshold for the specified
+ * pool to the supplied value.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.CollectionUsageThresholdSupport</code>,
+ * is defined).
+ *
+ * @param name the name of the pool to set the threshold of.
+ * @param threshold the new threshold level.
+ */
+ static native void setCollectionUsageThreshold(String name, long threshold);
+
+ /**
+ * Sets the usage threshold for the specified pool to the supplied value.
+ * This is only called if this functionality is supported
+ * by the virtual machine (i.e. the appropriate property,
+ * <code>gnu.java.lang.management.UsageThresholdSupport</code>,
+ * is defined).
+ *
+ * @param name the name of the pool to set the threshold of.
+ * @param threshold the new threshold level.
+ */
+ static native void setUsageThreshold(String name, long threshold);
+
+}
diff --git a/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.h b/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.h
new file mode 100644
index 000000000..183f4ba2e
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__
+#define __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMOperatingSystemMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMOperatingSystemMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMOperatingSystemMXBeanImpl();
+ static jdouble getSystemLoadAverage();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java b/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
new file mode 100644
index 000000000..20b3f9ed2
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
@@ -0,0 +1,68 @@
+/* VMOperatingSystemMXBeanImpl.java - VM implementation of an OS bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import gnu.classpath.Configuration;
+
+/**
+ * Provides access to information about the operating system.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.6
+ */
+final class VMOperatingSystemMXBeanImpl
+{
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary("javalangmanagement");
+ }
+ }
+
+ /**
+ * Returns the system load average from the last
+ * minute.
+ *
+ * @return the system load average from the last
+ * minute.
+ */
+ static native double getSystemLoadAverage();
+
+}
diff --git a/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h
new file mode 100644
index 000000000..9bd0e4422
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMRuntimeMXBeanImpl__
+#define __gnu_java_lang_management_VMRuntimeMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMRuntimeMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMRuntimeMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMRuntimeMXBeanImpl();
+ static JArray< ::java::lang::String * > * getInputArguments();
+ static ::java::lang::String * getName();
+ static jlong getStartTime();
+private:
+ static jlong getPID();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMRuntimeMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java
new file mode 100644
index 000000000..05d368a9e
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java
@@ -0,0 +1,109 @@
+/* VMRuntimeMXBeanImpl.java - VM implementation of an runtime bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import gnu.classpath.SystemProperties;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * Provides access to information about the virtual machine.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMRuntimeMXBeanImpl
+{
+
+ /**
+ * Returns the command-line arguments supplied
+ * to the virtual machine, excluding those supplied
+ * to <code>main()</code>.
+ *
+ * @return the command-line arguments.
+ */
+ static native String[] getInputArguments();
+
+ /**
+ * Returns a developer-chosen name for the virtual
+ * machine, which may differ over different running
+ * instances of the same virtual machine binary.
+ * For example, this may include the particular
+ * process identifier used by this instance or
+ * the host name of the machine on which it is
+ * running. The intention is that this name refers
+ * to the precise entity that the other data supplied
+ * by the bean refers to, rather than the VM in general.
+ *
+ * @return the custom name of the VM.
+ */
+ static String getName()
+ {
+ String hostName;
+ try
+ {
+ hostName = InetAddress.getLocalHost().getHostName();
+ }
+ catch (UnknownHostException e)
+ {
+ hostName = "Unknown host";
+ }
+ return SystemProperties.getProperty("java.vm.name") + " " +
+ SystemProperties.getProperty("java.vm.version") + " [" +
+ getPID() + "@" + hostName + "]";
+ }
+
+ /**
+ * The time in milliseconds at which the virtual
+ * machine was started. This method is only executed
+ * once (for efficency), as the value is not expected
+ * to change.
+ *
+ * @return the VM start time.
+ */
+ static native long getStartTime();
+
+ /**
+ * The process identifier of the runtime.
+ *
+ * @return the PID of the runtime.
+ */
+ private static native long getPID();
+
+}
diff --git a/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h
new file mode 100644
index 000000000..4c8ab8c45
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_management_VMThreadMXBeanImpl__
+#define __gnu_java_lang_management_VMThreadMXBeanImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ namespace management
+ {
+ class VMThreadMXBeanImpl;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::lang::management::VMThreadMXBeanImpl : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMThreadMXBeanImpl();
+ static JArray< jlong > * findDeadlockedThreads();
+ static JArray< jlong > * findMonitorDeadlockedThreads();
+ static JArray< ::java::lang::Thread * > * getAllThreads();
+ static JArray< jlong > * getAllThreadIds();
+ static jlong getCurrentThreadCpuTime();
+ static jlong getCurrentThreadUserTime();
+ static jint getDaemonThreadCount();
+ static void getLockInfo(::java::lang::management::ThreadInfo *);
+ static void getMonitorInfo(::java::lang::management::ThreadInfo *);
+ static jint getPeakThreadCount();
+ static jint getThreadCount();
+ static jlong getThreadCpuTime(jlong);
+ static ::java::lang::management::ThreadInfo * getThreadInfoForId(jlong, jint);
+ static jlong getThreadUserTime(jlong);
+ static jlong getTotalStartedThreadCount();
+ static void resetPeakThreadCount();
+private:
+ static jint filled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_management_VMThreadMXBeanImpl__
diff --git a/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java
new file mode 100644
index 000000000..1c061aa93
--- /dev/null
+++ b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java
@@ -0,0 +1,236 @@
+/* VMThreadMXBeanImpl.java - VM impl. of a thread bean
+ Copyright (C) 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang.management;
+
+import java.lang.management.ThreadInfo;
+
+/**
+ * Provides access to information about the threads
+ * of the virtual machine. An instance of this bean is
+ * obtained by calling
+ * {@link ManagementFactory#getThreadMXBean()}.
+ * See {@link java.lang.management.ThreadMXBean} for
+ * full documentation.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMThreadMXBeanImpl
+{
+
+ /**
+ * Cache of how many threads were found.
+ */
+ private static int filled;
+
+ /**
+ * Returns the ids of cycles of deadlocked threads, occurring
+ * due to monitor ownership or ownable synchronizer ownership.
+ * This will only be called if ownable synchronizer monitoring
+ * is supported.
+ *
+ * @return the ids of the deadlocked threads.
+ */
+ static native long[] findDeadlockedThreads();
+
+ /**
+ * Returns the ids of cycles of deadlocked threads, occurring
+ * due to monitor ownership.
+ *
+ * @return the ids of the deadlocked threads.
+ */
+ static native long[] findMonitorDeadlockedThreads();
+
+ /* This is the same as in Thread.getAllStackTraces() */
+ static Thread[] getAllThreads()
+ {
+ ThreadGroup group = Thread.currentThread().getThreadGroup();
+ while (group.getParent() != null)
+ group = group.getParent();
+ int arraySize = group.activeCount();
+ Thread[] threadList = new Thread[arraySize];
+ filled = group.enumerate(threadList);
+ while (filled == arraySize)
+ {
+ arraySize *= 2;
+ threadList = new Thread[arraySize];
+ filled = group.enumerate(threadList);
+ }
+ return threadList;
+ }
+
+ /**
+ * Returns the id of all live threads at the time of execution.
+ *
+ * @return the live thread ids.
+ */
+ static long[] getAllThreadIds()
+ {
+ Thread[] threadList = getAllThreads();
+ long[] ids = new long[filled];
+ for (int a = 0; a < filled; ++a)
+ ids[a] = threadList[a].getId();
+ return ids;
+ }
+
+ /**
+ * Returns the number of nanoseconds of CPU time
+ * the current thread has used in total. This is
+ * only called if this feature is enabled and
+ * supported.
+ *
+ * @return the nanoseconds of CPU time used by
+ * the current thread.
+ */
+ static native long getCurrentThreadCpuTime();
+
+ /**
+ * Returns the number of nanoseconds of user time
+ * the current thread has used in total. This is
+ * only called if this feature is enabled and
+ * supported.
+ *
+ * @return the nanoseconds of user time used by
+ * the current thread.
+ */
+ static native long getCurrentThreadUserTime();
+
+ /**
+ * Returns the number of live daemon threads.
+ *
+ * @return the number of live daemon threads.
+ */
+ static int getDaemonThreadCount()
+ {
+ Thread[] threadList = getAllThreads();
+ int daemonCount = 0;
+ for (int a = 0; a < filled; ++a)
+ {
+ if (threadList[a].isDaemon())
+ ++daemonCount;
+ }
+ return daemonCount;
+ }
+
+ /**
+ * Fill out the given {@link ThreadInfo} object
+ * with ownable synchronizer usage information.
+ * This is only called if ownable synchronizer
+ * usage monitoring is supported.
+ *
+ * @param info the {@link ThreadInfo} object to modify.
+ */
+ static native void getLockInfo(ThreadInfo info);
+
+ /**
+ * Fill out the given {@link ThreadInfo} object
+ * with monitor usage information. This is only
+ * called if monitor usage monitoring is supported.
+ *
+ * @param info the {@link ThreadInfo} object to modify.
+ */
+ static native void getMonitorInfo(ThreadInfo info);
+
+ /**
+ * Returns the current peak number of live threads.
+ *
+ * @return the peak number of live threads.
+ */
+ static native int getPeakThreadCount();
+
+ /**
+ * Returns the number of live threads.
+ *
+ * @return the number of live threads.
+ */
+ static int getThreadCount()
+ {
+ getAllThreads();
+ return filled;
+ }
+
+ /**
+ * Returns the number of nanoseconds of CPU time
+ * the specified thread has used in total. This is
+ * only called if this feature is enabled and
+ * supported.
+ *
+ * @param id the thread to obtain statistics on.
+ * @return the nanoseconds of CPU time used by
+ * the thread.
+ */
+ static native long getThreadCpuTime(long id);
+
+ /**
+ * Returns the {@link java.lang.management.ThreadInfo}
+ * which corresponds to the specified id.
+ *
+ * @param id the id of the thread.
+ * @param maxDepth the depth of the stack trace.
+ * @return the corresponding <code>ThreadInfo</code>.
+ */
+ static native ThreadInfo getThreadInfoForId(long id, int maxDepth);
+
+ /**
+ * Returns the number of nanoseconds of user time
+ * the specified thread has used in total. This is
+ * only called if this feature is enabled and
+ * supported.
+ *
+ * @param id the thread to obtain statistics on.
+ * @return the nanoseconds of user time used by
+ * the thread.
+ */
+ static native long getThreadUserTime(long id);
+
+ /**
+ * Returns the total number of threads that have
+ * been started over the lifetime of the virtual
+ * machine.
+ *
+ * @return the total number of threads started.
+ */
+ static native long getTotalStartedThreadCount();
+
+ /**
+ * Resets the peak thread count to the current
+ * number of live threads.
+ */
+ static native void resetPeakThreadCount();
+
+}
diff --git a/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc
new file mode 100644
index 000000000..5958b1f1d
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc
@@ -0,0 +1,49 @@
+/* Copyright (C) 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/**
+ * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @date Sun 20 Aug 2006 */
+/* Written using online API docs for JDK 1.5 beta from http://java.sun.com.
+ * Status: Believed complete and correct.
+ */
+
+#include <config.h>
+
+#include <jvm.h>
+
+#include <gnu/java/lang/management/VMClassLoadingMXBeanImpl.h>
+
+jint
+gnu::java::lang::management::VMClassLoadingMXBeanImpl::getLoadedClassCount ()
+{
+ /* FIXME: We never unload, so this never goes down again */
+ return ::gcj::loadedClasses;
+}
+
+
+jlong
+gnu::java::lang::management::VMClassLoadingMXBeanImpl::getUnloadedClassCount ()
+{
+ /* FIXME: We never unload, so this always == 0 */
+ return ::gcj::unloadedClasses;
+}
+
+
+jboolean
+gnu::java::lang::management::VMClassLoadingMXBeanImpl::isVerbose ()
+{
+ return ::gcj::verbose_class_flag;
+}
+
+
+void
+gnu::java::lang::management::VMClassLoadingMXBeanImpl::setVerbose (jboolean b)
+{
+ ::gcj::verbose_class_flag = b;
+}
diff --git a/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc
new file mode 100644
index 000000000..4ccadcb3c
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc
@@ -0,0 +1,11 @@
+#include <config.h>
+
+#include <gnu/java/lang/management/VMCompilationMXBeanImpl.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jlong
+gnu::java::lang::management::VMCompilationMXBeanImpl::getTotalCompilationTime ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMCompilationMXBeanImpl::getTotalCompilationTime () not implemented"));
+}
diff --git a/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc
new file mode 100644
index 000000000..3e4f999fe
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc
@@ -0,0 +1,18 @@
+#include <config.h>
+
+#include <gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jlong
+gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionCount (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionCount (::java::lang::String *) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionTime (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionTime (::java::lang::String *) not implemented"));
+}
diff --git a/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc
new file mode 100644
index 000000000..8b59815f5
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc
@@ -0,0 +1,47 @@
+/* Copyright (C) 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/**
+ * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @date Tue 08 Aug 2006 */
+/*
+ * Status: Stubbed.
+ */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <gnu/java/lang/management/VMMemoryMXBeanImpl.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+::java::lang::management::MemoryUsage *
+gnu::java::lang::management::VMMemoryMXBeanImpl::getNonHeapMemoryUsage ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::getNonHeapMemoryUsage () not implemented"));
+}
+
+
+jint
+gnu::java::lang::management::VMMemoryMXBeanImpl::getObjectPendingFinalizationCount ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::getObjectPendingFinalizationCount () not implemented"));
+}
+
+
+jboolean
+gnu::java::lang::management::VMMemoryMXBeanImpl::isVerbose ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::isVerbose () not implemented"));
+}
+
+
+void
+gnu::java::lang::management::VMMemoryMXBeanImpl::setVerbose (jboolean)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::setVerbose (jboolean) not implemented"));
+}
diff --git a/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc
new file mode 100644
index 000000000..8d8a3e6e7
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc
@@ -0,0 +1,11 @@
+#include <config.h>
+
+#include <gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jboolean
+gnu::java::lang::management::VMMemoryManagerMXBeanImpl::isValid (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryManagerMXBeanImpl::isValid (::java::lang::String *) not implemented"));
+}
diff --git a/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc
new file mode 100644
index 000000000..7bc0162d3
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc
@@ -0,0 +1,111 @@
+/* Copyright (C) 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/**
+ * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @date Tue 08 Aug 2006 */
+/* Implemented for our sole pool, the heap (we ignore the name input).
+ * Status: Stubbed.
+ */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+::java::lang::management::MemoryUsage *
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsage(jstring)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsage (::java::lang::String *) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThreshold (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThreshold (::java::lang::String *) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThresholdCount (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThresholdCount (::java::lang::String *) not implemented"));
+}
+
+
+JArray< ::java::lang::String *> *
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getMemoryManagerNames(jstring)
+{
+ return (JArray<jstring>*)
+ JvNewObjectArray(1, &::java::lang::String::class$, JvNewStringLatin1("BoehmGC"));
+}
+
+
+::java::lang::management::MemoryUsage *
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getPeakUsage (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getPeakUsage (::java::lang::String *) not implemented"));
+}
+
+
+::java::lang::String *
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getType (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getType (::java::lang::String *) not implemented"));
+}
+
+
+::java::lang::management::MemoryUsage *
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsage (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsage (::java::lang::String *) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThreshold (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThreshold (::java::lang::String *) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThresholdCount (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThresholdCount (::java::lang::String *) not implemented"));
+}
+
+
+jboolean
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::isValid (::java::lang::String *)
+{
+ return true;
+}
+
+
+void
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::resetPeakUsage (::java::lang::String *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::resetPeakUsage (::java::lang::String *) not implemented"));
+}
+
+
+void
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setCollectionUsageThreshold (::java::lang::String *, jlong)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setCollectionUsageThreshold (::java::lang::String *, jlong) not implemented"));
+}
+
+
+void
+gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setUsageThreshold (::java::lang::String *, jlong)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setUsageThreshold (::java::lang::String *, jlong) not implemented"));
+}
diff --git a/libjava/gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc
new file mode 100644
index 000000000..daea76bbf
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc
@@ -0,0 +1,18 @@
+#include <config.h>
+
+#include <gnu/java/lang/management/VMOperatingSystemMXBeanImpl.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jdouble
+gnu::java::lang::management::VMOperatingSystemMXBeanImpl::getSystemLoadAverage ()
+{
+#ifdef HAVE_GETLOADAVG
+ double avg[1];
+ int nos = getloadavg(avg, 1);
+ if (nos == 1)
+ return avg[0];
+ else
+#endif
+ return -1;
+}
diff --git a/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc
new file mode 100644
index 000000000..331079b0f
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc
@@ -0,0 +1,39 @@
+/* Copyright (C) 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/**
+ * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @date Wed 21 Jun 2006 */
+/* Written using online API docs for JDK 1.5 beta from http://java.sun.com.
+ * Status: Believed complete and correct.
+ */
+
+#include <config.h>
+
+#include <jvm.h>
+
+#include <unistd.h>
+
+#include <gnu/java/lang/management/VMRuntimeMXBeanImpl.h>
+
+JArray<jstring>* gnu::java::lang::management::VMRuntimeMXBeanImpl::getInputArguments()
+{
+ return ::gcj::vmArgs;
+}
+
+jlong gnu::java::lang::management::VMRuntimeMXBeanImpl::getStartTime()
+{
+ return ::gcj::startTime;
+}
+
+jlong gnu::java::lang::management::VMRuntimeMXBeanImpl::getPID()
+{
+ return getpid();
+}
+
+
diff --git a/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc
new file mode 100644
index 000000000..5d48957ba
--- /dev/null
+++ b/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc
@@ -0,0 +1,83 @@
+#include <config.h>
+
+#include <gnu/java/lang/management/VMThreadMXBeanImpl.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jlongArray
+gnu::java::lang::management::VMThreadMXBeanImpl::findDeadlockedThreads ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::findDeadlockedThreads () not implemented"));
+}
+
+jlongArray
+gnu::java::lang::management::VMThreadMXBeanImpl::findMonitorDeadlockedThreads ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::findMonitorDeadlockedThreads () not implemented"));
+}
+
+jlong
+gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadCpuTime ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadCpuTime () not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadUserTime ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadUserTime () not implemented"));
+}
+
+void
+gnu::java::lang::management::VMThreadMXBeanImpl::getLockInfo (::java::lang::management::ThreadInfo *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getLockInfo () not implemented"));
+}
+
+void
+gnu::java::lang::management::VMThreadMXBeanImpl::getMonitorInfo (::java::lang::management::ThreadInfo *)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getMonitorInfo () not implemented"));
+}
+
+jint
+gnu::java::lang::management::VMThreadMXBeanImpl::getPeakThreadCount ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getPeakThreadCount () not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMThreadMXBeanImpl::getThreadCpuTime (jlong)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadCpuTime (jlong) not implemented"));
+}
+
+
+::java::lang::management::ThreadInfo *
+gnu::java::lang::management::VMThreadMXBeanImpl::getThreadInfoForId (jlong, jint)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadInfoForId (jlong, jint) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMThreadMXBeanImpl::getThreadUserTime (jlong)
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadUserTime (jlong) not implemented"));
+}
+
+
+jlong
+gnu::java::lang::management::VMThreadMXBeanImpl::getTotalStartedThreadCount ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getTotalStartedThreadCount () not implemented"));
+}
+
+
+void
+gnu::java::lang::management::VMThreadMXBeanImpl::resetPeakThreadCount ()
+{
+ throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::resetPeakThreadCount () not implemented"));
+}