Make library more portable when some functions are not used
diff --git a/Makefile b/Makefile
index eaf93d0..b4dc5a0 100755
--- a/Makefile
+++ b/Makefile
@@ -2,10 +2,10 @@
CFLAGS = -c -DLINUX -fPIC -I/usr/local/j2sdk/include/ -I/usr/local/j2sdk/include/linux -Wimplicit -Wstrict-prototypes -Wall -Wno-unknown-pragmas -Iinclude
BINDIR=/usr/local/bin
-OBJFILES=jtux_clock.o jtux_file.o jtux_posixipc.o jtux_sysvipc.o jtux_dir.o jtux_network.o jtux_process.o jtux_util.o
+OBJFILES=jtux_clock.o jtux_file.o jtux_sysvipc.o jtux_dir.o jtux_network.o jtux_process.o jtux_util.o
libjtux.so: $(OBJFILES)
- $(CC) -shared -W1 -lrt -lnsl -o libjtux.so $(OBJFILES)
+ $(CC) -shared -W1 -lnsl -o libjtux.so $(OBJFILES)
clean:
rm -f *.o libjtux.so *.c~ *.h~ *.class
diff --git a/jtux_mq.c b/jtux_mq.c
new file mode 100755
index 0000000..3163bc9
--- /dev/null
+++ b/jtux_mq.c
@@ -0,0 +1,256 @@
+/*
+ Copyright 2003 by Marc J. Rochkind. All rights reserved.
+ May be copied only for purposes and under conditions described
+ on the Web page www.basepath.com/aup/copyright.htm.
+
+ The Example Files are provided "as is," without any warranty;
+ without even the implied warranty of merchantability or fitness
+ for a particular purpose. The author and his publisher are not
+ responsible for any damages, direct or incidental, resulting
+ from the use or non-use of these Example Files.
+
+ The Example Files may contain defects, and some contain deliberate
+ coding mistakes that were included for educational reasons.
+ You are responsible for determining if and how the Example Files
+ are to be used.
+
+*/
+
+#include "defs.h"
+#include <mqueue.h>
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1close(JNIEnv *env, jclass obj,
+ jlong mqd)
+{
+ JTHROW_neg1(mq_close((mqd_t)(intptr_t)mqd))
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1getattr(JNIEnv *env, jclass obj,
+ jlong mqd, jobject attr)
+{
+ jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
+ struct mq_attr attr_c;
+ int r;
+
+ JTHROW_neg1(r = mq_getattr((mqd_t)(intptr_t)mqd, &attr_c))
+ if (r != -1) {
+ if (!field_ctoj_long(env, cls, "mq_flags", attr, attr_c.mq_flags))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_maxmsg", attr, attr_c.mq_maxmsg))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_msgsize", attr, attr_c.mq_msgsize))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_curmsgs", attr, attr_c.mq_curmsgs))
+ return;
+ }
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1notify(JNIEnv *env, jclass obj,
+ jlong mqd, jobject ep)
+{
+ jclass cls = (*env)->FindClass(env, "jtux/UProcess$s_sigevent");
+ jclass cls_u_sigval_int = (*env)->FindClass(env, "jtux/UProcess$u_sigval_int");
+ jclass cls_u_sigval_ptr = (*env)->FindClass(env, "jtux/UProcess$u_sigval_ptr");
+ jfieldID fid;
+ jobject sigev_value;
+ struct sigevent sigevent_buf, *ep_c = &sigevent_buf;
+ long sival_ptr;
+
+ if (ep == NULL)
+ ep_c = NULL;
+ else {
+ if (!field_jtoc_int(env, cls, "sigev_notify", ep, &ep_c->sigev_notify))
+ return;
+ if (!field_jtoc_int(env, cls, "sigev_signo", ep, &ep_c->sigev_signo))
+ return;
+ if ((fid = (*env)->GetFieldID(env, cls, "sigev_value", "Ljtux/UProcess$u_sigval;")) == NULL)
+ return;
+ if ((sigev_value = (*env)->GetObjectField(env, ep, fid)) == NULL) {
+ JNU_ThrowByName(env, "NullPointerException", "sigev_value field not initialized");
+ return;
+ }
+ if ((*env)->IsInstanceOf(env, sigev_value, cls_u_sigval_int)) {
+ if (!field_jtoc_int(env, cls_u_sigval_int, "sival_int", sigev_value,
+ &ep_c->sigev_value.sival_int))
+ return;
+ }
+ else if ((*env)->IsInstanceOf(env, sigev_value, cls_u_sigval_ptr)) {
+ if (!field_jtoc_long(env, cls_u_sigval_ptr, "sival_ptr", sigev_value,
+ &sival_ptr))
+ return;
+ ep_c->sigev_value.sival_ptr = (void *)(intptr_t)sival_ptr;
+ }
+ else {
+ (void)setup_throw_errno(env, EINVAL);
+ return;
+ }
+ }
+ JTHROW_neg1(mq_notify((mqd_t)(intptr_t)mqd, ep_c))
+}
+
+JNIEXPORT jlong JNICALL Java_jtux_UPosixIPC_mq_1open__Ljava_lang_String_2I(JNIEnv *env, jclass obj,
+ jstring name, jint flags)
+{
+ JSTR_GET_DECL(name_c, name)
+ mqd_t mqd;
+
+ JSTR_NULLTEST_V(name_c, -1)
+ JTHROW_neg1(mqd = mq_open(name_c, flags))
+ JSTR_REL(name_c, name)
+ return (intptr_t)mqd;
+}
+
+JNIEXPORT jlong JNICALL Java_jtux_UPosixIPC_mq_1open__Ljava_lang_String_2IILjtux_UPosixIPC_00024s_1mq_1attr_2(JNIEnv *env, jclass obj,
+ jstring name, jint flags, jint perms, jobject attr)
+{
+ JSTR_GET_DECL(name_c, name)
+ mqd_t mqd;
+ struct mq_attr attr_c_buf, *attr_c = &attr_c_buf;
+ jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
+
+ JSTR_NULLTEST_V(name_c, -1)
+ if (attr == NULL)
+ attr_c = NULL;
+ else {
+ if (!field_jtoc_long(env, cls, "mq_flags", attr, &attr_c->mq_flags))
+ return -1;
+ if (!field_jtoc_long(env, cls, "mq_maxmsg", attr, &attr_c->mq_maxmsg))
+ return -1;
+ if (!field_jtoc_long(env, cls, "mq_msgsize", attr, &attr_c->mq_msgsize))
+ return -1;
+ if (!field_jtoc_long(env, cls, "mq_curmsgs", attr, &attr_c->mq_curmsgs))
+ return -1;
+ }
+ JTHROW_neg1(mqd = mq_open(name_c, flags, perms, attr_c))
+ JSTR_REL(name_c, name)
+ return (intptr_t)mqd;
+}
+
+JNIEXPORT jint JNICALL Java_jtux_UPosixIPC_mq_1receive(JNIEnv *env, jclass obj,
+ jlong mqd, jbyteArray msg, jint msgsize, jobject priority)
+{
+ ssize_t n;
+ void *msgp_c;
+ int priority_c;
+ jclass cls = (*env)->FindClass(env, "jtux/UUtil$IntHolder");
+
+ if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
+ return -1;
+ JTHROW_neg1(n = mq_receive((mqd_t)(intptr_t)mqd, msgp_c, msgsize, &priority_c))
+ (*env)->ReleaseByteArrayElements(env, msg, msgp_c, 0);
+ if (priority != NULL && n != -1) {
+ if (!field_ctoj_int(env, cls, "value", priority, priority_c))
+ return -1;
+ }
+ return n;
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1send(JNIEnv *env, jclass obj,
+ jlong mqd, jbyteArray msg, jint msgsize, jint priority)
+{
+ void *msgp_c;
+
+ if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
+ return;
+ JTHROW_neg1(mq_send((mqd_t)(intptr_t)mqd, msgp_c, msgsize, priority))
+ (*env)->ReleaseByteArrayElements(env, msg, msgp_c, JNI_ABORT);
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1setattr(JNIEnv *env, jclass obj,
+ jlong mqd, jobject attr, jobject oattr)
+{
+ jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
+ struct mq_attr attr_c, oattr_buf, *oattr_c = &oattr_buf;
+ int r;
+
+ if (oattr == NULL)
+ oattr_c = NULL;
+ if (!field_jtoc_long(env, cls, "mq_flags", attr, &attr_c.mq_flags))
+ return;
+ if (!field_jtoc_long(env, cls, "mq_maxmsg", attr, &attr_c.mq_maxmsg))
+ return;
+ if (!field_jtoc_long(env, cls, "mq_msgsize", attr, &attr_c.mq_msgsize))
+ return;
+ if (!field_jtoc_long(env, cls, "mq_curmsgs", attr, &attr_c.mq_curmsgs))
+ return;
+ JTHROW_neg1(r = mq_setattr((mqd_t)(intptr_t)mqd, &attr_c, oattr_c))
+ if (oattr != NULL && r != -1) {
+ if (!field_ctoj_long(env, cls, "mq_flags", oattr, oattr_c->mq_flags))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_maxmsg", oattr, oattr_c->mq_maxmsg))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_msgsize", oattr, oattr_c->mq_msgsize))
+ return;
+ if (!field_ctoj_long(env, cls, "mq_curmsgs", oattr, oattr_c->mq_curmsgs))
+ return;
+ }
+}
+
+JNIEXPORT jint JNICALL Java_jtux_UPosixIPC_mq_1timedreceive(JNIEnv *env, jclass obj,
+ jlong mqd, jbyteArray msg, jint msgsize, jobject priority, jobject tmout)
+{
+#if _XOPEN_VERSION >= 600
+// Following compiled but not tested
+ ssize_t n;
+ void *msgp_c;
+ int priority_c;
+ jclass cls_IntHolder = (*env)->FindClass(env, "jtux/UUtil$IntHolder");
+ jclass cls_timespec = (*env)->FindClass(env, "jtux/UProcess$s_timespec");
+ struct timespec tmout_c;
+ long sec;
+
+ if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
+ return -1;
+ if (!field_jtoc_long(env, cls_timespec, "tv_sec", tmout, &sec))
+ return -1;
+ tmout_c.tv_sec = (time_t)sec;
+ if (!field_jtoc_long(env, cls_timespec, "tv_nsec", tmout, &tmout_c.tv_nsec))
+ return -1;
+ JTHROW_neg1(n = mq_timedreceive((mqd_t)(intptr_t)mqd, msgp_c, msgsize, &priority_c,
+ &tmout_c))
+ (*env)->ReleaseByteArrayElements(env, msg, msgp_c, 0);
+ if (priority != NULL && n != -1) {
+ if (!field_ctoj_int(env, cls_IntHolder, "value", priority, priority_c))
+ return -1;
+ }
+ return n;
+#else
+ (void)setup_throw_errno(env, ENOSYS);
+ return -1;
+#endif
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1timedsend(JNIEnv *env, jclass obj,
+ jlong mqd, jbyteArray msg, jint msgsize, jint priority, jobject tmout)
+{
+#if _XOPEN_VERSION >= 600
+// Following compiled but not tested
+ void *msgp_c;
+ jclass cls_timespec = (*env)->FindClass(env, "jtux/UProcess$s_timespec");
+ struct timespec tmout_c;
+ long sec;
+
+ if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
+ return;
+ if (!field_jtoc_long(env, cls_timespec, "tv_sec", tmout, &sec))
+ return;
+ tmout_c.tv_sec = (time_t)sec;
+ if (!field_jtoc_long(env, cls_timespec, "tv_nsec", tmout, &tmout_c.tv_nsec))
+ return;
+ JTHROW_neg1(mq_timedsend((mqd_t)(intptr_t)mqd, msgp_c, msgsize, priority,
+ &tmout_c))
+ (*env)->ReleaseByteArrayElements(env, msg, msgp_c, JNI_ABORT);
+#else
+ (void)setup_throw_errno(env, ENOSYS);
+#endif
+}
+
+JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1unlink(JNIEnv *env, jclass obj,
+ jstring name)
+{
+ JSTR_GET_DECL(name_c, name)
+
+ JSTR_NULLTEST(name_c)
+ JTHROW_neg1(mq_unlink(name_c))
+ JSTR_REL(name_c, name)
+}
diff --git a/jtux_posixipc.c b/jtux_posixipc.c
index 008b570..c027c84 100755
--- a/jtux_posixipc.c
+++ b/jtux_posixipc.c
@@ -17,7 +17,6 @@
*/
#include "defs.h"
-#include <mqueue.h>
#include <semaphore.h>
#include <sys/mman.h>
#include "JtuxPosixIPC.h" // generated by javah
@@ -34,241 +33,6 @@
return (intptr_t)p;
}
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1close(JNIEnv *env, jclass obj,
- jlong mqd)
-{
- JTHROW_neg1(mq_close((mqd_t)(intptr_t)mqd))
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1getattr(JNIEnv *env, jclass obj,
- jlong mqd, jobject attr)
-{
- jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
- struct mq_attr attr_c;
- int r;
-
- JTHROW_neg1(r = mq_getattr((mqd_t)(intptr_t)mqd, &attr_c))
- if (r != -1) {
- if (!field_ctoj_long(env, cls, "mq_flags", attr, attr_c.mq_flags))
- return;
- if (!field_ctoj_long(env, cls, "mq_maxmsg", attr, attr_c.mq_maxmsg))
- return;
- if (!field_ctoj_long(env, cls, "mq_msgsize", attr, attr_c.mq_msgsize))
- return;
- if (!field_ctoj_long(env, cls, "mq_curmsgs", attr, attr_c.mq_curmsgs))
- return;
- }
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1notify(JNIEnv *env, jclass obj,
- jlong mqd, jobject ep)
-{
- jclass cls = (*env)->FindClass(env, "jtux/UProcess$s_sigevent");
- jclass cls_u_sigval_int = (*env)->FindClass(env, "jtux/UProcess$u_sigval_int");
- jclass cls_u_sigval_ptr = (*env)->FindClass(env, "jtux/UProcess$u_sigval_ptr");
- jfieldID fid;
- jobject sigev_value;
- struct sigevent sigevent_buf, *ep_c = &sigevent_buf;
- long sival_ptr;
-
- if (ep == NULL)
- ep_c = NULL;
- else {
- if (!field_jtoc_int(env, cls, "sigev_notify", ep, &ep_c->sigev_notify))
- return;
- if (!field_jtoc_int(env, cls, "sigev_signo", ep, &ep_c->sigev_signo))
- return;
- if ((fid = (*env)->GetFieldID(env, cls, "sigev_value", "Ljtux/UProcess$u_sigval;")) == NULL)
- return;
- if ((sigev_value = (*env)->GetObjectField(env, ep, fid)) == NULL) {
- JNU_ThrowByName(env, "NullPointerException", "sigev_value field not initialized");
- return;
- }
- if ((*env)->IsInstanceOf(env, sigev_value, cls_u_sigval_int)) {
- if (!field_jtoc_int(env, cls_u_sigval_int, "sival_int", sigev_value,
- &ep_c->sigev_value.sival_int))
- return;
- }
- else if ((*env)->IsInstanceOf(env, sigev_value, cls_u_sigval_ptr)) {
- if (!field_jtoc_long(env, cls_u_sigval_ptr, "sival_ptr", sigev_value,
- &sival_ptr))
- return;
- ep_c->sigev_value.sival_ptr = (void *)(intptr_t)sival_ptr;
- }
- else {
- (void)setup_throw_errno(env, EINVAL);
- return;
- }
- }
- JTHROW_neg1(mq_notify((mqd_t)(intptr_t)mqd, ep_c))
-}
-
-JNIEXPORT jlong JNICALL Java_jtux_UPosixIPC_mq_1open__Ljava_lang_String_2I(JNIEnv *env, jclass obj,
- jstring name, jint flags)
-{
- JSTR_GET_DECL(name_c, name)
- mqd_t mqd;
-
- JSTR_NULLTEST_V(name_c, -1)
- JTHROW_neg1(mqd = mq_open(name_c, flags))
- JSTR_REL(name_c, name)
- return (intptr_t)mqd;
-}
-
-JNIEXPORT jlong JNICALL Java_jtux_UPosixIPC_mq_1open__Ljava_lang_String_2IILjtux_UPosixIPC_00024s_1mq_1attr_2(JNIEnv *env, jclass obj,
- jstring name, jint flags, jint perms, jobject attr)
-{
- JSTR_GET_DECL(name_c, name)
- mqd_t mqd;
- struct mq_attr attr_c_buf, *attr_c = &attr_c_buf;
- jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
-
- JSTR_NULLTEST_V(name_c, -1)
- if (attr == NULL)
- attr_c = NULL;
- else {
- if (!field_jtoc_long(env, cls, "mq_flags", attr, &attr_c->mq_flags))
- return -1;
- if (!field_jtoc_long(env, cls, "mq_maxmsg", attr, &attr_c->mq_maxmsg))
- return -1;
- if (!field_jtoc_long(env, cls, "mq_msgsize", attr, &attr_c->mq_msgsize))
- return -1;
- if (!field_jtoc_long(env, cls, "mq_curmsgs", attr, &attr_c->mq_curmsgs))
- return -1;
- }
- JTHROW_neg1(mqd = mq_open(name_c, flags, perms, attr_c))
- JSTR_REL(name_c, name)
- return (intptr_t)mqd;
-}
-
-JNIEXPORT jint JNICALL Java_jtux_UPosixIPC_mq_1receive(JNIEnv *env, jclass obj,
- jlong mqd, jbyteArray msg, jint msgsize, jobject priority)
-{
- ssize_t n;
- void *msgp_c;
- int priority_c;
- jclass cls = (*env)->FindClass(env, "jtux/UUtil$IntHolder");
-
- if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
- return -1;
- JTHROW_neg1(n = mq_receive((mqd_t)(intptr_t)mqd, msgp_c, msgsize, &priority_c))
- (*env)->ReleaseByteArrayElements(env, msg, msgp_c, 0);
- if (priority != NULL && n != -1) {
- if (!field_ctoj_int(env, cls, "value", priority, priority_c))
- return -1;
- }
- return n;
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1send(JNIEnv *env, jclass obj,
- jlong mqd, jbyteArray msg, jint msgsize, jint priority)
-{
- void *msgp_c;
-
- if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
- return;
- JTHROW_neg1(mq_send((mqd_t)(intptr_t)mqd, msgp_c, msgsize, priority))
- (*env)->ReleaseByteArrayElements(env, msg, msgp_c, JNI_ABORT);
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1setattr(JNIEnv *env, jclass obj,
- jlong mqd, jobject attr, jobject oattr)
-{
- jclass cls = (*env)->FindClass(env, "jtux/UPosixIPC$s_mq_attr");
- struct mq_attr attr_c, oattr_buf, *oattr_c = &oattr_buf;
- int r;
-
- if (oattr == NULL)
- oattr_c = NULL;
- if (!field_jtoc_long(env, cls, "mq_flags", attr, &attr_c.mq_flags))
- return;
- if (!field_jtoc_long(env, cls, "mq_maxmsg", attr, &attr_c.mq_maxmsg))
- return;
- if (!field_jtoc_long(env, cls, "mq_msgsize", attr, &attr_c.mq_msgsize))
- return;
- if (!field_jtoc_long(env, cls, "mq_curmsgs", attr, &attr_c.mq_curmsgs))
- return;
- JTHROW_neg1(r = mq_setattr((mqd_t)(intptr_t)mqd, &attr_c, oattr_c))
- if (oattr != NULL && r != -1) {
- if (!field_ctoj_long(env, cls, "mq_flags", oattr, oattr_c->mq_flags))
- return;
- if (!field_ctoj_long(env, cls, "mq_maxmsg", oattr, oattr_c->mq_maxmsg))
- return;
- if (!field_ctoj_long(env, cls, "mq_msgsize", oattr, oattr_c->mq_msgsize))
- return;
- if (!field_ctoj_long(env, cls, "mq_curmsgs", oattr, oattr_c->mq_curmsgs))
- return;
- }
-}
-
-JNIEXPORT jint JNICALL Java_jtux_UPosixIPC_mq_1timedreceive(JNIEnv *env, jclass obj,
- jlong mqd, jbyteArray msg, jint msgsize, jobject priority, jobject tmout)
-{
-#if _XOPEN_VERSION >= 600
-// Following compiled but not tested
- ssize_t n;
- void *msgp_c;
- int priority_c;
- jclass cls_IntHolder = (*env)->FindClass(env, "jtux/UUtil$IntHolder");
- jclass cls_timespec = (*env)->FindClass(env, "jtux/UProcess$s_timespec");
- struct timespec tmout_c;
- long sec;
-
- if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
- return -1;
- if (!field_jtoc_long(env, cls_timespec, "tv_sec", tmout, &sec))
- return -1;
- tmout_c.tv_sec = (time_t)sec;
- if (!field_jtoc_long(env, cls_timespec, "tv_nsec", tmout, &tmout_c.tv_nsec))
- return -1;
- JTHROW_neg1(n = mq_timedreceive((mqd_t)(intptr_t)mqd, msgp_c, msgsize, &priority_c,
- &tmout_c))
- (*env)->ReleaseByteArrayElements(env, msg, msgp_c, 0);
- if (priority != NULL && n != -1) {
- if (!field_ctoj_int(env, cls_IntHolder, "value", priority, priority_c))
- return -1;
- }
- return n;
-#else
- (void)setup_throw_errno(env, ENOSYS);
- return -1;
-#endif
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1timedsend(JNIEnv *env, jclass obj,
- jlong mqd, jbyteArray msg, jint msgsize, jint priority, jobject tmout)
-{
-#if _XOPEN_VERSION >= 600
-// Following compiled but not tested
- void *msgp_c;
- jclass cls_timespec = (*env)->FindClass(env, "jtux/UProcess$s_timespec");
- struct timespec tmout_c;
- long sec;
-
- if ((msgp_c = (*env)->GetByteArrayElements(env, msg, NULL)) == NULL)
- return;
- if (!field_jtoc_long(env, cls_timespec, "tv_sec", tmout, &sec))
- return;
- tmout_c.tv_sec = (time_t)sec;
- if (!field_jtoc_long(env, cls_timespec, "tv_nsec", tmout, &tmout_c.tv_nsec))
- return;
- JTHROW_neg1(mq_timedsend((mqd_t)(intptr_t)mqd, msgp_c, msgsize, priority,
- &tmout_c))
- (*env)->ReleaseByteArrayElements(env, msg, msgp_c, JNI_ABORT);
-#else
- (void)setup_throw_errno(env, ENOSYS);
-#endif
-}
-
-JNIEXPORT void JNICALL Java_jtux_UPosixIPC_mq_1unlink(JNIEnv *env, jclass obj,
- jstring name)
-{
- JSTR_GET_DECL(name_c, name)
-
- JSTR_NULLTEST(name_c)
- JTHROW_neg1(mq_unlink(name_c))
- JSTR_REL(name_c, name)
-}
JNIEXPORT void JNICALL Java_jtux_UPosixIPC_munmap(JNIEnv *env, jclass obj,
jlong addr, jint len)