[vmkit-commits] [PATCH] Add (minimal) signal support regarding JVM_FindSignal, JVM_RegisterSignal
Will Dietz
wdietz2 at illinois.edu
Thu Nov 3 07:32:59 PDT 2011
Inlined below.
Thanks!
~Will
>From b61e5572ad53bf8c518c0ba458942d0696ad20e8 Mon Sep 17 00:00:00 2001
From: Will Dietz <w at wdtz.org>
Date: Wed, 2 Nov 2011 22:41:45 -0500
Subject: [PATCH 12/17] Add (minimal) signal support regarding JVM_FindSignal,
JVM_RegisterSignal
---
lib/J3/ClassLib/OpenJDK/OpenJDK.inc | 28 ++++++++++++++++++++++++++--
1 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
index bb11f0d..48ffce9 100644
--- a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
+++ b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc
@@ -1781,7 +1781,8 @@ JVM_GetStackAccessControlContext(JNIEnv *env,
jclass cls) {
JNIEXPORT void * JNICALL
JVM_RegisterSignal(jint sig, void *handler) {
- NYI();
+ // Don't let signals be registered, yet.
+ return (void*)-1;
}
JNIEXPORT jboolean JNICALL
@@ -1791,7 +1792,30 @@ JVM_RaiseSignal(jint sig) {
JNIEXPORT jint JNICALL
JVM_FindSignal(const char *name) {
- NYI();
+ // Map Signal name to integer...
+ static struct {
+ const char * name;
+ int num;
+ } SignalMap[] =
+ {
+ { "TERM", SIGTERM },
+ { "HUP", SIGHUP },
+ { "INT", SIGINT }
+ };
+ static uint32 signal_count = sizeof(SignalMap)/sizeof(SignalMap[0]);
+
+ BEGIN_JNI_EXCEPTION
+
+ for(uint32 i = 0; i < signal_count; ++i) {
+ if (!strcmp(name, SignalMap[i].name))
+ RETURN_FROM_JNI(SignalMap[i].num);
+ }
+
+ fprintf(stderr, "Unknown Signal \"%s\", missing entry in table?\n", name);
+
+ END_JNI_EXCEPTION
+
+ return 0;
}
/*
--
1.7.5.1
More information about the vmkit-commits
mailing list