From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24477 invoked by alias); 1 May 2008 19:34:19 -0000 Received: (qmail 24452 invoked by uid 367); 1 May 2008 19:34:18 -0000 Date: Thu, 01 May 2008 19:34:00 -0000 Message-ID: <20080501193418.24437.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Generate better function signatures; use jnixx generated headers. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: faf7b23b07999359f25fea39859dc47abb045024 X-Git-Newrev: c27ec54879bae0c562ab9d105fa15c454423c3b4 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00175.txt.bz2 The branch, master has been updated via c27ec54879bae0c562ab9d105fa15c454423c3b4 (commit) from faf7b23b07999359f25fea39859dc47abb045024 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c27ec54879bae0c562ab9d105fa15c454423c3b4 Author: Andrew Cagney Date: Thu May 1 15:26:14 2008 -0400 Generate better function signatures; use jnixx generated headers. frysk-sys/frysk/jni/ChangeLog 2008-05-01 Andrew Cagney * xx.hxx (jstringArray): Define. * jnixx.java: Generate function signatures; wrap headers in #ifdef; better handle array types. frysk-sys/frysk/sys/ChangeLog 2008-05-01 Andrew Cagney * jni/FileDescriptor.cxx: Include jnixx generated header. * jni/StatelessFile.cxx: Ditto. * jni/Wait.cxx: Ditto. * jni/Uname.cxx: Ditto. * jni/SignalSet.cxx: Ditto. * jni/Poll.cxx: Ditto. * jni/Itimer.cxx: Ditto. * jni/Fork.cxx: Ditto. * jni/Exec.cxx: Ditto. * jni/DaemonFactory.cxx: Ditto. * jni/ChildFactory.cxx: Ditto. * jni/AuditLibs.cxx: Ditto. * jni/PseudoTerminal.cxx: Ditto. * jni/Pipe.cxx: Ditto. frysk-sys/frysk/sys/proc/ChangeLog 2008-05-01 Andrew Cagney * jni/AuxvBuilder.cxx: Include jnixx generated header. * jni/Status.cxx: Ditto. * jni/Stat.cxx: Ditto. * jni/ProcBuilder.cxx: Ditto. * jni/MapsBuilder.cxx: Ditto. * jni/Exe.cxx: Ditto. * jni/CmdLineBuilder.cxx: Ditto. frysk-sys/frysk/sys/ptrace/ChangeLog 2008-05-01 Andrew Cagney * jni/Ptrace.cxx: Include jnihxx generated header. * jni/Utrace.cxx: Ditto. * jni/RegisterSet.cxx: Ditto. frysk-sys/frysk/sys/termios/ChangeLog 2008-05-01 Andrew Cagney * jni/Control.cxx: Include jnixx generated header. * jni/Termios.cxx: Ditto. * jni/Speed.cxx: Ditto. * jni/Special.cxx: Ditto. * jni/Output.cxx: Ditto. * jni/Local.cxx: Ditto. * jni/Input.cxx: Ditto. * jni/Flush.cxx: Ditto. * jni/Flow.cxx: Ditto. frysk-sys/lib/opcodes/ChangeLog 2008-05-01 Andrew Cagney * jni/Disassembler.cxx: Include jnixx generated header. frysk-sys/lib/stdcpp/ChangeLog 2008-05-01 Andrew Cagney * jni/Demangler.cxx: Do not include javah generated header. frysk-sys/lib/unwind/ChangeLog 2008-05-01 Andrew Cagney * jni/Unwind.cxx: New. * jni/ElfImage.cxx: Include jnixx generated header. * jni/UnwindX86.cxx: Ditto. * jni/UnwindX8664.cxx: Ditto. * jni/UnwindPPC64.cxx: Ditto. * jni/UnwindPPC32.cxx: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/jni/ChangeLog | 4 + frysk-sys/frysk/jni/jnixx.java | 110 +++++++-- frysk-sys/frysk/jni/xx.hxx | 9 + frysk-sys/frysk/sys/ChangeLog | 15 ++ frysk-sys/frysk/sys/jni/AuditLibs.cxx | 23 +-- frysk-sys/frysk/sys/jni/ChildFactory.cxx | 13 +- frysk-sys/frysk/sys/jni/DaemonFactory.cxx | 13 +- frysk-sys/frysk/sys/jni/Exec.cxx | 13 +- frysk-sys/frysk/sys/jni/FileDescriptor.cxx | 133 +---------- frysk-sys/frysk/sys/jni/Fork.cxx | 23 +-- frysk-sys/frysk/sys/jni/Itimer.cxx | 23 +-- frysk-sys/frysk/sys/jni/Pipe.cxx | 13 +- frysk-sys/frysk/sys/jni/Poll.cxx | 23 +-- frysk-sys/frysk/sys/jni/PseudoTerminal.cxx | 23 +-- frysk-sys/frysk/sys/jni/SignalSet.cxx | 133 +---------- frysk-sys/frysk/sys/jni/StatelessFile.cxx | 23 +-- frysk-sys/frysk/sys/jni/Uname.cxx | 13 +- frysk-sys/frysk/sys/jni/Wait.cxx | 73 +------ frysk-sys/frysk/sys/proc/ChangeLog | 10 + frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx | 23 +-- frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx | 23 +-- frysk-sys/frysk/sys/proc/jni/Exe.cxx | 13 +- frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx | 23 +-- frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx | 33 +--- frysk-sys/frysk/sys/proc/jni/Stat.cxx | 33 +--- frysk-sys/frysk/sys/proc/jni/Status.cxx | 23 +-- frysk-sys/frysk/sys/ptrace/ChangeLog | 6 + frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx | 63 +----- frysk-sys/frysk/sys/ptrace/jni/Ptrace.cxx | 123 +---------- frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx | 43 +---- frysk-sys/frysk/sys/ptrace/jni/Utrace.cxx | 73 +------ frysk-sys/frysk/sys/termios/ChangeLog | 12 + frysk-sys/frysk/sys/termios/jni/Control.cxx | 23 +-- frysk-sys/frysk/sys/termios/jni/Flow.cxx | 13 +- frysk-sys/frysk/sys/termios/jni/Flush.cxx | 13 +- frysk-sys/frysk/sys/termios/jni/Input.cxx | 23 +-- frysk-sys/frysk/sys/termios/jni/Local.cxx | 23 +-- .../sys/{jni/Uname.cxx => termios/jni/Mode.cxx} | 14 +- frysk-sys/frysk/sys/termios/jni/Output.cxx | 23 +-- frysk-sys/frysk/sys/termios/jni/Special.cxx | 23 +-- frysk-sys/frysk/sys/termios/jni/Speed.cxx | 33 +--- frysk-sys/frysk/sys/termios/jni/Termios.cxx | 63 +----- frysk-sys/lib/opcodes/ChangeLog | 4 + frysk-sys/lib/opcodes/jni/Disassembler.cxx | 33 +--- frysk-sys/lib/stdcpp/ChangeLog | 2 + frysk-sys/lib/stdcpp/jni/Demangler.cxx | 2 - frysk-sys/lib/unwind/ChangeLog | 9 + frysk-sys/lib/unwind/jni/ElfImage.cxx | 23 +-- .../jni/Uname.cxx => lib/unwind/jni/Unwind.cxx} | 14 +- frysk-sys/lib/unwind/jni/UnwindPPC32.cxx | 253 +------------------- frysk-sys/lib/unwind/jni/UnwindPPC64.cxx | 253 +------------------- frysk-sys/lib/unwind/jni/UnwindX86.cxx | 253 +------------------- frysk-sys/lib/unwind/jni/UnwindX8664.cxx | 253 +------------------- 53 files changed, 200 insertions(+), 2331 deletions(-) copy frysk-sys/frysk/sys/{jni/Uname.cxx => termios/jni/Mode.cxx} (88%) copy frysk-sys/{frysk/sys/jni/Uname.cxx => lib/unwind/jni/Unwind.cxx} (88%) First 500 lines of diff: diff --git a/frysk-sys/frysk/jni/ChangeLog b/frysk-sys/frysk/jni/ChangeLog index 0dbcf5b..6c531b5 100644 --- a/frysk-sys/frysk/jni/ChangeLog +++ b/frysk-sys/frysk/jni/ChangeLog @@ -1,5 +1,9 @@ 2008-05-01 Andrew Cagney + * xx.hxx (jstringArray): Define. + * jnixx.java: Generate function signatures; wrap headers in + #ifdef; better handle array types. + * jnixx.java: Use findClass and frysk/jni/xx.hxx; throw jnixx_exception. * xx.hxx: Replace members.hxx. diff --git a/frysk-sys/frysk/jni/jnixx.java b/frysk-sys/frysk/jni/jnixx.java index 43a6f1b..6d8fcfc 100644 --- a/frysk-sys/frysk/jni/jnixx.java +++ b/frysk-sys/frysk/jni/jnixx.java @@ -91,6 +91,9 @@ class jnixx { * Print the namespace spec for the klass. */ static void printCxxNamespace(Class klass) { + while (klass.isArray()) { + klass = klass.getComponentType(); + } if (klass.isPrimitive()) return; if (printedNamespaces.contains(klass)) @@ -137,14 +140,69 @@ class jnixx { } } + static String jniSignature(Class klass) { + StringBuffer signature = new StringBuffer(); + while (klass.isArray()) { + klass = klass.getComponentType(); + signature.append("["); + } + if (klass == Boolean.TYPE) { + signature.append("Z"); + } else if (klass == Byte.TYPE) { + signature.append("B"); + } else if (klass == Character.TYPE) { + signature.append("C"); + } else if (klass == Double.TYPE) { + signature.append("D"); + } else if (klass == Float.TYPE) { + signature.append("F"); + } else if (klass == Integer.TYPE) { + signature.append("I"); + } else if (klass == Long.TYPE) { + signature.append("J"); + } else if (klass == Short.TYPE) { + signature.append("S"); + } else if (klass == Void.TYPE) { + signature.append("V"); + } else if (klass.isPrimitive()) { + throw new RuntimeException("unhandled primitive type: " + klass); + } else { + signature.append("L"); + signature.append(klass.getName().replaceAll("\\.", "/")); + signature.append(";"); + } + return signature.toString(); + } + + static void printSignature(Method method) { + print("("); + Class[] params = method.getParameterTypes(); + for (int i = 0; i < params.length; i++) { + print(jniSignature(params[i])); + } + print(")"); + print(jniSignature(method.getReturnType())); + } + /** * Given a method, print its JNI mangled name. */ static void printJniName(Method method) { print("Java_"); - print(method.getDeclaringClass().getName().replaceAll("\\.", "_")); + print(method.getDeclaringClass().getName() + .replaceAll("_", "_1") + .replaceAll("\\.", "_")); print("_"); - print(method.getName()); + print(method.getName().replaceAll("_", "_1")); + print("__"); + Class[] params = method.getParameterTypes(); + for (int i = 0; i < params.length; i++) { + print(jniSignature(params[i]) + .replaceAll("_", "_1") + .replaceAll(";", "_2") + .replaceAll("\\[", "_3") + .replaceAll("/", "_")); + } } @@ -153,23 +211,7 @@ class jnixx { * equivalent name. For classes, print the XX type. */ static void printJniType(Class klass) { - if (klass.isPrimitive()) { - if (klass == Void.TYPE) { - print("void"); - } else { - print("j"); - print(klass.getName()); - } - } else if (klass == String.class) { - print("jstring"); - } else if (klass == Object.class) { - print("jobject"); - } else if (klass == Class.class) { - print("jclass"); - } else { - printCxxName(klass); - print("*"); - } + printCxxType(klass); } /** @@ -184,6 +226,16 @@ class jnixx { print("j"); print(klass.getName()); } + } else if (klass.isArray()) { + Class component = klass.getComponentType(); + if (component.isPrimitive()) { + printCxxType(component); + print("Array"); + } else if (component == String.class) { + print("jstringArray"); + } else { + print("jobjectArray"); + } } else if (klass == String.class) { print("jstring"); } else if (klass == Object.class) { @@ -288,12 +340,22 @@ class jnixx { } static void printHxxFile(Class klass) { - println("#include "); + String header = klass.getName().replaceAll("\\.", "_") + "_jni_hxx"; + println("#ifndef " + header); + println("#define " + header); + println(); + println("#include \"frysk/jni/xx.hxx\""); printCxxNamespaces(klass); println(); + Class parent = klass.getSuperclass(); + if (parent != Object.class) { + print("#include \""); + print(parent.getName().replaceAll("\\.", "/")); + println("-jni.hxx\""); + println(); + } print("struct "); printCxxName(klass); - Class parent = klass.getSuperclass(); if (parent == Object.class) { print(" : public __jobject"); } else if (parent != null) { @@ -317,6 +379,8 @@ class jnixx { } println(); println("};"); + println(); + println("#endif"); } static void printNativeMethodDefinition(Method method) { @@ -354,10 +418,6 @@ class jnixx { println("}"); } - static void printSignature(Method method) { - - } - static void printCxxMethodDefinition(Method method) { Class returnType = method.getReturnType(); println(); diff --git a/frysk-sys/frysk/jni/xx.hxx b/frysk-sys/frysk/jni/xx.hxx index 90c2f42..0bd3bff 100644 --- a/frysk-sys/frysk/jni/xx.hxx +++ b/frysk-sys/frysk/jni/xx.hxx @@ -42,11 +42,18 @@ * stderr and then throws a jnixx_exception. */ +#ifndef frysk_jni_xx_hxx +#define frysk_jni_xx_hxx + #include class jnixx_exception { }; +struct __jstringArray : public __jobjectArray { +}; +typedef __jstringArray* jstringArray; + extern jclass findClass(JNIEnv* env, const char *signature); extern jstring newStringUTF(JNIEnv* env, const char *string); @@ -74,3 +81,5 @@ extern jfieldID getStaticFieldID(JNIEnv* env, jobject object, extern jfieldID getStaticFieldID(JNIEnv* env, jclass klass, const char* name, const char* signature); + +#endif diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index 24f16d6..4420fa1 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,5 +1,20 @@ 2008-05-01 Andrew Cagney + * jni/FileDescriptor.cxx: Include jnixx generated header. + * jni/StatelessFile.cxx: Ditto. + * jni/Wait.cxx: Ditto. + * jni/Uname.cxx: Ditto. + * jni/SignalSet.cxx: Ditto. + * jni/Poll.cxx: Ditto. + * jni/Itimer.cxx: Ditto. + * jni/Fork.cxx: Ditto. + * jni/Exec.cxx: Ditto. + * jni/DaemonFactory.cxx: Ditto. + * jni/ChildFactory.cxx: Ditto. + * jni/AuditLibs.cxx: Ditto. + * jni/PseudoTerminal.cxx: Ditto. + * jni/Pipe.cxx: Ditto. + * jni/Pid.cxx (Pid::parentPid, Pid::pid): Drop jclass parameter. * jni/Tid.cxx (Tid::tid): Ditto. diff --git a/frysk-sys/frysk/sys/jni/AuditLibs.cxx b/frysk-sys/frysk/sys/jni/AuditLibs.cxx index a0fa4df..2073a8f 100644 --- a/frysk-sys/frysk/sys/jni/AuditLibs.cxx +++ b/frysk-sys/frysk/sys/jni/AuditLibs.cxx @@ -37,25 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_AuditLibs.h" - - -JNIEXPORT jstring -Java_frysk_sys_AuditLibs_syscallToName (JNIEnv *env, jclass, jint, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_AuditLibs_syscallToName not implemented"); - } - return 0; -} - -JNIEXPORT jint -Java_frysk_sys_AuditLibs_nameToSyscall (JNIEnv *env, jclass, jstring, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_AuditLibs_nameToSyscall not implemented"); - } - return 0; -} +#include "frysk/sys/AuditLibs-jni.hxx" diff --git a/frysk-sys/frysk/sys/jni/ChildFactory.cxx b/frysk-sys/frysk/sys/jni/ChildFactory.cxx index 7c64acc..9e2eb82 100644 --- a/frysk-sys/frysk/sys/jni/ChildFactory.cxx +++ b/frysk-sys/frysk/sys/jni/ChildFactory.cxx @@ -37,15 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_ChildFactory.h" - - -JNIEXPORT jobject -Java_frysk_sys_ChildFactory_child (JNIEnv *env, jclass, jobject, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_ChildFactory_child not implemented"); - } - return 0; -} +#include "frysk/sys/ChildFactory-jni.hxx" diff --git a/frysk-sys/frysk/sys/jni/DaemonFactory.cxx b/frysk-sys/frysk/sys/jni/DaemonFactory.cxx index baa85c3..34f9c1a 100644 --- a/frysk-sys/frysk/sys/jni/DaemonFactory.cxx +++ b/frysk-sys/frysk/sys/jni/DaemonFactory.cxx @@ -37,15 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_DaemonFactory.h" - - -JNIEXPORT jobject -Java_frysk_sys_DaemonFactory_daemon (JNIEnv *env, jclass, jobject, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_DaemonFactory_daemon not implemented"); - } - return 0; -} +#include "frysk/sys/DaemonFactory-jni.hxx" diff --git a/frysk-sys/frysk/sys/jni/Exec.cxx b/frysk-sys/frysk/sys/jni/Exec.cxx index ea87e2e..d315860 100644 --- a/frysk-sys/frysk/sys/jni/Exec.cxx +++ b/frysk-sys/frysk/sys/jni/Exec.cxx @@ -37,15 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_Exec.h" - - -JNIEXPORT void -Java_frysk_sys_Exec_execute (JNIEnv *env, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_Exec_execute not implemented"); - } - return; -} +#include "frysk/sys/Exec-jni.hxx" diff --git a/frysk-sys/frysk/sys/jni/FileDescriptor.cxx b/frysk-sys/frysk/sys/jni/FileDescriptor.cxx index 4649cab..cb8b662 100644 --- a/frysk-sys/frysk/sys/jni/FileDescriptor.cxx +++ b/frysk-sys/frysk/sys/jni/FileDescriptor.cxx @@ -37,135 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_FileDescriptor.h" - - -JNIEXPORT void -Java_frysk_sys_FileDescriptor_dup (JNIEnv *env, jobject, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_dup not implemented"); - } - return; -} - -JNIEXPORT jint -Java_frysk_sys_FileDescriptor_open (JNIEnv *env, jclass, jstring, jint, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_open not implemented"); - } - return 0; -} - -JNIEXPORT void -Java_frysk_sys_FileDescriptor_close (JNIEnv *env, jclass, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_close not implemented"); - } - return; -} - -JNIEXPORT jboolean -Java_frysk_sys_FileDescriptor_ready (JNIEnv *env, jobject, jlong) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_ready not implemented"); - } - return 0; -} - -JNIEXPORT jint -Java_frysk_sys_FileDescriptor_read__ (JNIEnv *env, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_read__ not implemented"); - } - return 0; -} - -JNIEXPORT jint -Java_frysk_sys_FileDescriptor_read___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_read___3BII not implemented"); - } - return 0; -} - -JNIEXPORT void -Java_frysk_sys_FileDescriptor_write__I (JNIEnv *env, jobject, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_write__I not implemented"); - } - return; -} - -JNIEXPORT jint -Java_frysk_sys_FileDescriptor_write___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_write___3BII not implemented"); - } - return 0; -} - -JNIEXPORT jobject -Java_frysk_sys_FileDescriptor_getSize (JNIEnv *env, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_getSize not implemented"); - } - return 0; -} - -JNIEXPORT void -Java_frysk_sys_FileDescriptor_setSize (JNIEnv *env, jobject, jobject) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_setSize not implemented"); - } - return; -} - -JNIEXPORT jlong -Java_frysk_sys_FileDescriptor_seekSet (JNIEnv *env, jobject, jlong) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_seekSet not implemented"); - } - return 0; -} - -JNIEXPORT jlong -Java_frysk_sys_FileDescriptor_seekEnd (JNIEnv *env, jobject, jlong) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_seekEnd not implemented"); - } - return 0; -} - -JNIEXPORT jlong -Java_frysk_sys_FileDescriptor_seekCurrent (JNIEnv *env, jobject, jlong) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_FileDescriptor_seekCurrent not implemented"); - } - return 0; -} +#include "frysk/sys/FileDescriptor-jni.hxx" diff --git a/frysk-sys/frysk/sys/jni/Fork.cxx b/frysk-sys/frysk/sys/jni/Fork.cxx index 42c6c59..89a26db 100644 --- a/frysk-sys/frysk/sys/jni/Fork.cxx +++ b/frysk-sys/frysk/sys/jni/Fork.cxx @@ -37,25 +37,4 @@ // version and license this file solely under the GPL without // exception. -#include "frysk_sys_Fork.h" - - -JNIEXPORT jobject -Java_frysk_sys_Fork_spawn (JNIEnv *env, jclass, jobject, jstring, jstring, jstring, jobjectArray, jstring, jint) -{ - jclass cls = env->FindClass("java/lang/RuntimeException"); - if (cls != NULL) { - env->ThrowNew(cls, __FILE__ ":Java_frysk_sys_Fork_spawn not implemented"); - } - return 0; -} - -JNIEXPORT jobject -Java_frysk_sys_Fork_daemon (JNIEnv *env, jclass, jobject, jstring, jstring, jstring, jobjectArray) -{ hooks/post-receive -- frysk system monitor/debugger