* src/vm/signal.c (signal_thread): Restart sigwait if it has been
[cacao.git] / src / native / vm / gnuclasspath / gnu_java_lang_management_VMThreadMXBeanImpl.cpp
1 /* src/native/vm/gnuclasspath/gnu_java_lang_management_VMThreadMXBeanImpl.cpp
2
3    Copyright (C) 1996-2005, 2006, 2008
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.h"
33 #include "native/native.h"
34
35 #include "native/include/java_lang_Throwable.h"
36 #include "native/include/java_lang_management_ThreadInfo.h"
37
38 // FIXME
39 extern "C" {
40 #include "native/include/gnu_java_lang_management_VMThreadMXBeanImpl.h"
41 }
42
43 #include "toolbox/logging.h"
44
45 #include "vm/vm.hpp"
46
47 #include "vmcore/classcache.h"
48 #include "vmcore/utf8.h"
49
50
51 // Native functions are exported as C functions.
52 extern "C" {
53
54 /*
55  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
56  * Method:    findMonitorDeadlockedThreads
57  * Signature: ()[J
58  */
59 JNIEXPORT java_handle_longarray_t* JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads(JNIEnv *env, jclass clazz)
60 {
61         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads: IMPLEMENT ME!");
62
63         return NULL;
64 }
65
66
67 /*
68  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
69  * Method:    getCurrentThreadCpuTime
70  * Signature: ()J
71  */
72 JNIEXPORT int64_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime(JNIEnv *env, jclass clazz)
73 {
74         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime: IMPLEMENT ME!");
75
76         return 0;
77 }
78
79
80 /*
81  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
82  * Method:    getCurrentThreadUserTime
83  * Signature: ()J
84  */
85 JNIEXPORT int64_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime(JNIEnv *env, jclass clazz)
86 {
87         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime: IMPLEMENT ME!");
88
89         return 0;
90 }
91
92
93 /*
94  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
95  * Method:    getPeakThreadCount
96  * Signature: ()I
97  */
98 JNIEXPORT int32_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getPeakThreadCount(JNIEnv *env, jclass clazz)
99 {
100 /*      return _Jv_jvm->java_lang_management_ThreadMXBean_PeakThreadCount; */
101 #warning Move to C++
102         log_println("Java_gnu_java_lang_management_ThreadMXBean_getPeakThreadCount: MOVE TO C++!");
103         return 0;
104 }
105
106
107 /*
108  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
109  * Method:    getThreadCpuTime
110  * Signature: (J)J
111  */
112 JNIEXPORT int64_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime(JNIEnv *env, jclass clazz, int64_t id)
113 {
114         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime: IMPLEMENT ME!");
115
116         return 0;
117 }
118
119
120 /*
121  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
122  * Method:    getThreadInfoForId
123  * Signature: (JI)Ljava/lang/management/ThreadInfo;
124  */
125 JNIEXPORT java_lang_management_ThreadInfo* JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId(JNIEnv *env, jclass clazz, int64_t id, int32_t maxDepth)
126 {
127         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId: IMPLEMENT ME!");
128
129         return NULL;
130 }
131
132
133 /*
134  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
135  * Method:    getThreadUserTime
136  * Signature: (J)J
137  */
138 JNIEXPORT int64_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime(JNIEnv *env, jclass clazz, int64_t par1)
139 {
140         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime: IMPLEMENT ME!");
141
142         return 0;
143 }
144
145
146 /*
147  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
148  * Method:    getTotalStartedThreadCount
149  * Signature: ()J
150  */
151 JNIEXPORT int64_t JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_getTotalStartedThreadCount(JNIEnv *env, jclass clazz)
152 {
153 /*      return _Jv_jvm->java_lang_management_ThreadMXBean_TotalStartedThreadCount; */
154 #warning Move to C++
155         log_println("Java_gnu_java_lang_management_ThreadMXBean_getTotalStartedThreadCount: MOVE TO C++!");
156         return 0;
157 }
158
159
160 /*
161  * Class:     gnu/java/lang/management/VMThreadMXBeanImpl
162  * Method:    resetPeakThreadCount
163  * Signature: ()V
164  */
165 JNIEXPORT void JNICALL Java_gnu_java_lang_management_VMThreadMXBeanImpl_resetPeakThreadCount(JNIEnv *env, jclass clazz)
166 {
167 /*      _Jv_jvm->java_lang_management_ThreadMXBean_PeakThreadCount = */
168 /*              _Jv_jvm->java_lang_management_ThreadMXBean_ThreadCount; */
169 #warning Move to C++
170         log_println("Java_gnu_java_lang_management_VMThreadMXBeanImpl_resetPeakThreadCount: MOVE TO C++!");
171 }
172
173 } // extern "C"
174
175
176 /* native methods implemented by this file ************************************/
177
178 static JNINativeMethod methods[] = {
179         { (char*) "findMonitorDeadlockedThreads", (char*) "()[J",                                  (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_findMonitorDeadlockedThreads },
180         { (char*) "getCurrentThreadCpuTime",      (char*) "()J",                                   (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadCpuTime      },
181         { (char*) "getCurrentThreadUserTime",     (char*) "()J",                                   (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getCurrentThreadUserTime     },
182         { (char*) "getPeakThreadCount",           (char*) "()I",                                   (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getPeakThreadCount           },
183         { (char*) "getThreadCpuTime",             (char*) "(J)J",                                  (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadCpuTime             },
184         { (char*) "getThreadInfoForId",           (char*) "(JI)Ljava/lang/management/ThreadInfo;", (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadInfoForId           },
185         { (char*) "getThreadUserTime",            (char*) "(J)J",                                  (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getThreadUserTime            },
186         { (char*) "getTotalStartedThreadCount",   (char*) "()J",                                   (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_getTotalStartedThreadCount   },
187         { (char*) "resetPeakThreadCount",         (char*) "()V",                                   (void*) (uintptr_t) &Java_gnu_java_lang_management_VMThreadMXBeanImpl_resetPeakThreadCount         },
188 };
189
190
191 /* _Jv_gnu_java_lang_management_VMThreadMXBeanImpl_init ************************
192
193    Register native functions.
194
195 *******************************************************************************/
196
197 // FIXME
198 extern "C" {
199 void _Jv_gnu_java_lang_management_VMThreadMXBeanImpl_init(void)
200 {
201         utf *u;
202
203         u = utf_new_char("gnu/java/lang/management/VMThreadMXBeanImpl");
204
205         native_method_register(u, methods, NATIVE_METHODS_COUNT);
206 }
207 }
208
209
210 /*
211  * These are local overrides for various environment variables in Emacs.
212  * Please do not remove this and leave it at the end of the file, where
213  * Emacs will automagically detect them.
214  * ---------------------------------------------------------------------
215  * Local variables:
216  * mode: c++
217  * indent-tabs-mode: t
218  * c-basic-offset: 4
219  * tab-width: 4
220  * End:
221  * vim:noexpandtab:sw=4:ts=4:
222  */