Line data Source code
1 : /* src/native/vm/gnuclasspath/gnu_java_lang_management_VMThreadMXBeanImpl.cpp
2 :
3 : Copyright (C) 1996-2013
4 : CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5 :
6 : This file is part of CACAO.
7 :
8 : This program is free software; you can redistribute it and/or
9 : modify it under the terms of the GNU General Public License as
10 : published by the Free Software Foundation; either version 2, or (at
11 : your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful, but
14 : WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 : General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program; if not, write to the Free Software
20 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 : 02110-1301, USA.
22 :
23 : */
24 :
25 :
26 : #include "config.h"
27 :
28 : #include <stdint.h>
29 :
30 : #include "mm/gc.hpp"
31 :
32 : #include "native/jni.hpp"
33 : #include "native/native.hpp"
34 :
35 : #if defined(ENABLE_JNI_HEADERS)
36 : # include "native/vm/include/gnu_java_lang_management_VMThreadMXBeanImpl.h"
37 : #endif
38 :
39 : #include "threads/threadlist.hpp"
40 :
41 : #include "toolbox/logging.hpp"
42 :
43 : #include "vm/classcache.hpp"
44 : #include "vm/utf8.hpp"
45 : #include "vm/vm.hpp"
46 :
47 :
48 : // Native functions are exported as C functions.
49 : extern "C" {
50 :
51 : /*
52 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
53 : * Method: findMonitorDeadlockedThreads
54 : * Signature: ()[J
55 : */
56 0 : JNIEXPORT jlongArray JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads(JNIEnv *env, jclass clazz)
57 : {
58 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads: IMPLEMENT ME!");
59 :
60 0 : return NULL;
61 : }
62 :
63 :
64 : /*
65 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
66 : * Method: getCurrentThreadCpuTime
67 : * Signature: ()J
68 : */
69 0 : JNIEXPORT jlong JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime(JNIEnv *env, jclass clazz)
70 : {
71 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime: IMPLEMENT ME!");
72 :
73 0 : return 0;
74 : }
75 :
76 :
77 : /*
78 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
79 : * Method: getCurrentThreadUserTime
80 : * Signature: ()J
81 : */
82 0 : JNIEXPORT jlong JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime(JNIEnv *env, jclass clazz)
83 : {
84 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime: IMPLEMENT ME!");
85 :
86 0 : return 0;
87 : }
88 :
89 :
90 : /*
91 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
92 : * Method: getPeakThreadCount
93 : * Signature: ()I
94 : */
95 0 : JNIEXPORT jint JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getPeakThreadCount(JNIEnv *env, jclass clazz)
96 : {
97 0 : return ThreadList::get()->get_peak_of_active_java_threads();
98 : }
99 :
100 :
101 : /*
102 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
103 : * Method: getThreadCpuTime
104 : * Signature: (J)J
105 : */
106 0 : JNIEXPORT jlong JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime(JNIEnv *env, jclass clazz, jlong id)
107 : {
108 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime: IMPLEMENT ME!");
109 :
110 0 : return 0;
111 : }
112 :
113 :
114 : /*
115 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
116 : * Method: getThreadInfoForId
117 : * Signature: (JI)Ljava/lang/management/ThreadInfo;
118 : */
119 0 : JNIEXPORT jobject JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId(JNIEnv *env, jclass clazz, jlong id, jint maxDepth)
120 : {
121 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId: IMPLEMENT ME!");
122 :
123 0 : return NULL;
124 : }
125 :
126 :
127 : /*
128 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
129 : * Method: getThreadUserTime
130 : * Signature: (J)J
131 : */
132 0 : JNIEXPORT jlong JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime(JNIEnv *env, jclass clazz, jlong par1)
133 : {
134 0 : log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime: IMPLEMENT ME!");
135 :
136 0 : return 0;
137 : }
138 :
139 :
140 : /*
141 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
142 : * Method: getTotalStartedThreadCount
143 : * Signature: ()J
144 : */
145 0 : JNIEXPORT jlong JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getTotalStartedThreadCount(JNIEnv *env, jclass clazz)
146 : {
147 0 : return ThreadList::get()->get_number_of_started_java_threads();
148 : }
149 :
150 :
151 : /*
152 : * Class: gnu/java/lang/management/VMThreadMXBeanImpl
153 : * Method: resetPeakThreadCount
154 : * Signature: ()V
155 : */
156 0 : JNIEXPORT void JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_resetPeakThreadCount(JNIEnv *env, jclass clazz)
157 : {
158 0 : return ThreadList::get()->reset_peak_of_active_java_threads();
159 : }
160 :
161 : } // extern "C"
162 :
163 :
164 : /* native methods implemented by this file ************************************/
165 :
166 : static JNINativeMethod methods[] = {
167 : { (char*) "findMonitorDeadlockedThreads", (char*) "()[J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads },
168 : { (char*) "getCurrentThreadCpuTime", (char*) "()J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime },
169 : { (char*) "getCurrentThreadUserTime", (char*) "()J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime },
170 : { (char*) "getPeakThreadCount", (char*) "()I", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getPeakThreadCount },
171 : { (char*) "getThreadCpuTime", (char*) "(J)J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime },
172 : { (char*) "getThreadInfoForId", (char*) "(JI)Ljava/lang/management/ThreadInfo;", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId },
173 : { (char*) "getThreadUserTime", (char*) "(J)J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime },
174 : { (char*) "getTotalStartedThreadCount", (char*) "()J", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getTotalStartedThreadCount },
175 : { (char*) "resetPeakThreadCount", (char*) "()V", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_resetPeakThreadCount },
176 : };
177 :
178 :
179 : /* _Jv_gnu_java_lang_management_VMThreadMXBeanImpl_init ************************
180 :
181 : Register native functions.
182 :
183 : *******************************************************************************/
184 :
185 163 : void _Jv_gnu_java_lang_management_VMThreadMXBeanImpl_init(void)
186 : {
187 163 : Utf8String u = Utf8String::from_utf8("gnu/java/lang/management/VMThreadMXBeanImpl");
188 :
189 163 : NativeMethods& nm = VM::get_current()->get_nativemethods();
190 163 : nm.register_methods(u, methods, NATIVE_METHODS_COUNT);
191 163 : }
192 :
193 :
194 : /*
195 : * These are local overrides for various environment variables in Emacs.
196 : * Please do not remove this and leave it at the end of the file, where
197 : * Emacs will automagically detect them.
198 : * ---------------------------------------------------------------------
199 : * Local variables:
200 : * mode: c++
201 : * indent-tabs-mode: t
202 : * c-basic-offset: 4
203 : * tab-width: 4
204 : * End:
205 : * vim:noexpandtab:sw=4:ts=4:
206 : */
|