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: link
Be 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).