public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Generate better function signatures; use jnixx generated headers. Date: Thu, 01 May 2008 19:34:00 -0000 [thread overview] Message-ID: <20080501193418.24437.qmail@sourceware.org> (raw) 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 <cagney@redhat.com> 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 <cagney@redhat.com> * 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 <cagney@redhat.com> * 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 <cagney@redhat.com> * 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 <cagney@redhat.com> * 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 <cagney@redhat.com> * 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 <cagney@redhat.com> * jni/Disassembler.cxx: Include jnixx generated header. frysk-sys/lib/stdcpp/ChangeLog 2008-05-01 Andrew Cagney <cagney@redhat.com> * jni/Demangler.cxx: Do not include javah generated header. frysk-sys/lib/unwind/ChangeLog 2008-05-01 Andrew Cagney <cagney@redhat.com> * 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 <cagney@redhat.com> + * 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 <jni.h>"); + 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 <jni.h> 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 <cagney@redhat.com> + * 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
reply other threads:[~2008-05-01 19:34 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080501193418.24437.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).