< prev index next >
src/java.base/aix/native/libjsig/jsig.c
Print this page
@@ -35,10 +35,11 @@
#include <dlfcn.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
+#include "jni.h"
#define bool int
#define true 1
#define false 0
@@ -138,15 +139,17 @@
signal_unlock();
return oldhandler;
}
}
-sa_handler_t signal(int sig, sa_handler_t disp) {
+JNIEXPORT sa_handler_t JNICALL
+signal(int sig, sa_handler_t disp) {
return set_signal(sig, disp, false);
}
-sa_handler_t sigset(int sig, sa_handler_t disp) {
+JNIEXPORT sa_handler_t JNICALL
+sigset(int sig, sa_handler_t disp) {
return set_signal(sig, disp, true);
}
static int call_os_sigaction(int sig, const struct sigaction *act,
struct sigaction *oact) {
@@ -159,11 +162,12 @@
}
}
return (*os_sigaction)(sig, act, oact);
}
-int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) {
+JNIEXPORT int JNICALL
+sigaction(int sig, const struct sigaction *act, struct sigaction *oact) {
int res;
bool sigused;
struct sigaction oldAct;
signal_lock();
@@ -204,27 +208,30 @@
return res;
}
}
/* The three functions for the jvm to call into. */
-void JVM_begin_signal_setting() {
+JNIEXPORT void JNICALL
+JVM_begin_signal_setting() {
signal_lock();
sigemptyset(&jvmsigs);
jvm_signal_installing = true;
tid = pthread_self();
signal_unlock();
}
-void JVM_end_signal_setting() {
+JNIEXPORT void JNICALL
+JVM_end_signal_setting() {
signal_lock();
jvm_signal_installed = true;
jvm_signal_installing = false;
pthread_cond_broadcast(&cond);
signal_unlock();
}
-struct sigaction *JVM_get_signal_action(int sig) {
+JNIEXPORT struct sigaction * JNICALL
+JVM_get_signal_action(int sig) {
/* Does race condition make sense here? */
if (sigismember(&jvmsigs, sig)) {
return &sact[sig];
}
return NULL;
< prev index next >