summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2009-04-23 14:39:31 +0100
committerRichard W.M. Jones <rjones@redhat.com>2009-04-23 14:39:31 +0100
commit8f9f02d483b87c787d089cf9329f5f1b81d3a77e (patch)
treeee1c0403092e9dd296c43706a0c7c2d14d5a5c19 /java
parent713283f4a67b3a1960ca96ce6608d046fc202d2d (diff)
downloadlibguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.tar.gz
libguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.tar.xz
libguestfs-8f9f02d483b87c787d089cf9329f5f1b81d3a77e.zip
Generated code for debug command.
Diffstat (limited to 'java')
-rw-r--r--java/com/redhat/et/libguestfs/GuestFS.java23
-rw-r--r--java/com_redhat_et_libguestfs_GuestFS.c36
2 files changed, 59 insertions, 0 deletions
diff --git a/java/com/redhat/et/libguestfs/GuestFS.java b/java/com/redhat/et/libguestfs/GuestFS.java
index bb6c8d70..f1cd508b 100644
--- a/java/com/redhat/et/libguestfs/GuestFS.java
+++ b/java/com/redhat/et/libguestfs/GuestFS.java
@@ -2186,4 +2186,27 @@ public class GuestFS {
private native void _mount_vfs (long g, String options, String vfstype, String device, String mountpoint)
throws LibGuestFSException;
+ /**
+ * debugging and internals
+ *
+ * The "g.debug" command exposes some internals of
+ * "guestfsd" (the guestfs daemon) that runs inside the
+ * qemu subprocess.
+ *
+ * There is no comprehensive help for this command. You
+ * have to look at the file "daemon/debug.c" in the
+ * libguestfs source to find out what you can do.
+ *
+ * @throws LibGuestFSException
+ */
+ public String debug (String subcmd, String[] extraargs)
+ throws LibGuestFSException
+ {
+ if (g == 0)
+ throw new LibGuestFSException ("debug: handle is closed");
+ return _debug (g, subcmd, extraargs);
+ }
+ private native String _debug (long g, String subcmd, String[] extraargs)
+ throws LibGuestFSException;
+
}
diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c
index 81435d90..4b96c262 100644
--- a/java/com_redhat_et_libguestfs_GuestFS.c
+++ b/java/com_redhat_et_libguestfs_GuestFS.c
@@ -2230,3 +2230,39 @@ Java_com_redhat_et_libguestfs_GuestFS__1mount_1vfs
}
}
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1debug
+ (JNIEnv *env, jobject obj, jlong jg, jstring jsubcmd, jobjectArray jextraargs)
+{
+ guestfs_h *g = (guestfs_h *) (long) jg;
+ jstring jr;
+ char *r;
+ const char *subcmd;
+ int extraargs_len;
+ const char **extraargs;
+ int i;
+
+ subcmd = (*env)->GetStringUTFChars (env, jsubcmd, NULL);
+ extraargs_len = (*env)->GetArrayLength (env, jextraargs);
+ extraargs = malloc (sizeof (char *) * (extraargs_len+1));
+ for (i = 0; i < extraargs_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i);
+ extraargs[i] = (*env)->GetStringUTFChars (env, o, NULL);
+ }
+ extraargs[extraargs_len] = NULL;
+ r = guestfs_debug (g, subcmd, extraargs);
+ (*env)->ReleaseStringUTFChars (env, jsubcmd, subcmd);
+ for (i = 0; i < extraargs_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i);
+ (*env)->ReleaseStringUTFChars (env, o, extraargs[i]);
+ }
+ free (extraargs);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+