This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Generate better function signatures; use jnixx generated headers.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]