+/* libguestfs generated file
+ * WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
+ * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
+ *
+ * Copyright (C) 2009 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "com_redhat_et_libguestfs_GuestFS.h"
+#include "guestfs.h"
+
+/* Note that this function returns. The exception is not thrown
+ * until after the wrapper function returns.
+ */
+static void
+throw_exception (JNIEnv *env, const char *msg)
+{
+ jclass cl;
+ cl = (*env)->FindClass (env,
+ "com/redhat/et/libguestfs/LibGuestFSException");
+ (*env)->ThrowNew (env, cl, msg);
+}
+
+JNIEXPORT jlong JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1create
+ (JNIEnv *env, jobject obj)
+{
+ guestfs_h *g;
+
+ g = guestfs_create ();
+ if (g == NULL) {
+ throw_exception (env, "GuestFS.create: failed to allocate handle");
+ return 0;
+ }
+ guestfs_set_error_handler (g, NULL, NULL);
+ return (jlong) g;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1close
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ guestfs_close (g);
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1launch
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_launch (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1wait_1ready
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_wait_ready (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1kill_1subprocess
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_kill_subprocess (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1add_1drive
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfilename)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *filename;
+
+ filename = (*env)->GetStringUTFChars (env, jfilename, NULL);
+ r = guestfs_add_drive (g, filename);
+ (*env)->ReleaseStringUTFChars (env, jfilename, filename);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1add_1cdrom
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfilename)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *filename;
+
+ filename = (*env)->GetStringUTFChars (env, jfilename, NULL);
+ r = guestfs_add_cdrom (g, filename);
+ (*env)->ReleaseStringUTFChars (env, jfilename, filename);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1config
+ (JNIEnv *env, jobject obj, jlong jg, jstring jqemuparam, jstring jqemuvalue)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *qemuparam;
+ const char *qemuvalue;
+
+ qemuparam = (*env)->GetStringUTFChars (env, jqemuparam, NULL);
+ qemuvalue = (*env)->GetStringUTFChars (env, jqemuvalue, NULL);
+ r = guestfs_config (g, qemuparam, qemuvalue);
+ (*env)->ReleaseStringUTFChars (env, jqemuparam, qemuparam);
+ (*env)->ReleaseStringUTFChars (env, jqemuvalue, qemuvalue);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1set_1path
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_set_path (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1get_1path
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ const char *r;
+
+ r = guestfs_get_path (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ return (*env)->NewStringUTF (env, r);
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1set_1autosync
+ (JNIEnv *env, jobject obj, jlong jg, jboolean jautosync)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ int autosync;
+
+ autosync = jautosync;
+ r = guestfs_set_autosync (g, autosync);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1get_1autosync
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_get_autosync (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1set_1verbose
+ (JNIEnv *env, jobject obj, jlong jg, jboolean jverbose)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ int verbose;
+
+ verbose = jverbose;
+ r = guestfs_set_verbose (g, verbose);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1get_1verbose
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_get_verbose (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1ready
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_is_ready (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1config
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_is_config (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1launching
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_is_launching (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1busy
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_is_busy (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs__1get_1state
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_get_state (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1set_1busy
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_set_busy (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1set_1ready
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_set_ready (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1mount
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring jmountpoint)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+ const char *mountpoint;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ mountpoint = (*env)->GetStringUTFChars (env, jmountpoint, NULL);
+ r = guestfs_mount (g, device, mountpoint);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ (*env)->ReleaseStringUTFChars (env, jmountpoint, mountpoint);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1sync
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_sync (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1touch
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_touch (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1cat
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_cat (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1ll
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ const char *directory;
+
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ r = guestfs_ll (g, directory);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1ls
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *directory;
+ int i;
+
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ r = guestfs_ls (g, directory);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1list_1devices
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_list_devices (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1list_1partitions
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_list_partitions (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1pvs
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_pvs (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1vgs
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_vgs (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1lvs
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_lvs (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1pvs_1full
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ jclass cl;
+ jfieldID fl;
+ jobject jfl;
+ struct guestfs_lvm_pv_list *r;
+ int i;
+
+ r = guestfs_pvs_full (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/PV");
+ jr = (*env)->NewObjectArray (env, r->len, cl, NULL);
+ for (i = 0; i < r->len; ++i) {
+ jfl = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "pv_name", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].pv_name));
+ {
+ char s[33];
+ memcpy (s, r->val[i].pv_uuid, 32);
+ s[32] = 0;
+ fl = (*env)->GetFieldID (env, cl, "pv_uuid", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));
+ }
+ fl = (*env)->GetFieldID (env, cl, "pv_fmt", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].pv_fmt));
+ fl = (*env)->GetFieldID (env, cl, "pv_size", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_size);
+ fl = (*env)->GetFieldID (env, cl, "dev_size", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].dev_size);
+ fl = (*env)->GetFieldID (env, cl, "pv_free", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_free);
+ fl = (*env)->GetFieldID (env, cl, "pv_used", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_used);
+ fl = (*env)->GetFieldID (env, cl, "pv_attr", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].pv_attr));
+ fl = (*env)->GetFieldID (env, cl, "pv_pe_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_pe_count);
+ fl = (*env)->GetFieldID (env, cl, "pv_pe_alloc_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_pe_alloc_count);
+ fl = (*env)->GetFieldID (env, cl, "pv_tags", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].pv_tags));
+ fl = (*env)->GetFieldID (env, cl, "pe_start", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pe_start);
+ fl = (*env)->GetFieldID (env, cl, "pv_mda_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_mda_count);
+ fl = (*env)->GetFieldID (env, cl, "pv_mda_free", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_mda_free);
+ (*env)->SetObjectArrayElement (env, jfl, i, jfl);
+ }
+ guestfs_free_lvm_pv_list (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1vgs_1full
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ jclass cl;
+ jfieldID fl;
+ jobject jfl;
+ struct guestfs_lvm_vg_list *r;
+ int i;
+
+ r = guestfs_vgs_full (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/VG");
+ jr = (*env)->NewObjectArray (env, r->len, cl, NULL);
+ for (i = 0; i < r->len; ++i) {
+ jfl = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "vg_name", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].vg_name));
+ {
+ char s[33];
+ memcpy (s, r->val[i].vg_uuid, 32);
+ s[32] = 0;
+ fl = (*env)->GetFieldID (env, cl, "vg_uuid", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));
+ }
+ fl = (*env)->GetFieldID (env, cl, "vg_fmt", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].vg_fmt));
+ fl = (*env)->GetFieldID (env, cl, "vg_attr", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].vg_attr));
+ fl = (*env)->GetFieldID (env, cl, "vg_size", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_size);
+ fl = (*env)->GetFieldID (env, cl, "vg_free", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_free);
+ fl = (*env)->GetFieldID (env, cl, "vg_sysid", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].vg_sysid));
+ fl = (*env)->GetFieldID (env, cl, "vg_extent_size", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_extent_size);
+ fl = (*env)->GetFieldID (env, cl, "vg_extent_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_extent_count);
+ fl = (*env)->GetFieldID (env, cl, "vg_free_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_free_count);
+ fl = (*env)->GetFieldID (env, cl, "max_lv", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].max_lv);
+ fl = (*env)->GetFieldID (env, cl, "max_pv", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].max_pv);
+ fl = (*env)->GetFieldID (env, cl, "pv_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].pv_count);
+ fl = (*env)->GetFieldID (env, cl, "lv_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_count);
+ fl = (*env)->GetFieldID (env, cl, "snap_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].snap_count);
+ fl = (*env)->GetFieldID (env, cl, "vg_seqno", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_seqno);
+ fl = (*env)->GetFieldID (env, cl, "vg_tags", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].vg_tags));
+ fl = (*env)->GetFieldID (env, cl, "vg_mda_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_mda_count);
+ fl = (*env)->GetFieldID (env, cl, "vg_mda_free", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].vg_mda_free);
+ (*env)->SetObjectArrayElement (env, jfl, i, jfl);
+ }
+ guestfs_free_lvm_vg_list (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1lvs_1full
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ jclass cl;
+ jfieldID fl;
+ jobject jfl;
+ struct guestfs_lvm_lv_list *r;
+ int i;
+
+ r = guestfs_lvs_full (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/LV");
+ jr = (*env)->NewObjectArray (env, r->len, cl, NULL);
+ for (i = 0; i < r->len; ++i) {
+ jfl = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "lv_name", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].lv_name));
+ {
+ char s[33];
+ memcpy (s, r->val[i].lv_uuid, 32);
+ s[32] = 0;
+ fl = (*env)->GetFieldID (env, cl, "lv_uuid", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));
+ }
+ fl = (*env)->GetFieldID (env, cl, "lv_attr", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].lv_attr));
+ fl = (*env)->GetFieldID (env, cl, "lv_major", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_major);
+ fl = (*env)->GetFieldID (env, cl, "lv_minor", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_minor);
+ fl = (*env)->GetFieldID (env, cl, "lv_kernel_major", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_kernel_major);
+ fl = (*env)->GetFieldID (env, cl, "lv_kernel_minor", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_kernel_minor);
+ fl = (*env)->GetFieldID (env, cl, "lv_size", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].lv_size);
+ fl = (*env)->GetFieldID (env, cl, "seg_count", "J");
+ (*env)->SetLongField (env, jfl, fl, r->val[i].seg_count);
+ fl = (*env)->GetFieldID (env, cl, "origin", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].origin));
+ fl = (*env)->GetFieldID (env, cl, "snap_percent", "F");
+ (*env)->SetFloatField (env, jfl, fl, r->val[i].snap_percent);
+ fl = (*env)->GetFieldID (env, cl, "copy_percent", "F");
+ (*env)->SetFloatField (env, jfl, fl, r->val[i].copy_percent);
+ fl = (*env)->GetFieldID (env, cl, "move_pv", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].move_pv));
+ fl = (*env)->GetFieldID (env, cl, "lv_tags", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].lv_tags));
+ fl = (*env)->GetFieldID (env, cl, "mirror_log", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].mirror_log));
+ fl = (*env)->GetFieldID (env, cl, "modules", "Ljava/lang/String;");
+ (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].modules));
+ (*env)->SetObjectArrayElement (env, jfl, i, jfl);
+ }
+ guestfs_free_lvm_lv_list (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1read_1lines
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *path;
+ int i;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_read_lines (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1init
+ (JNIEnv *env, jobject obj, jlong jg, jstring jroot, jint jflags)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *root;
+ int flags;
+
+ root = (*env)->GetStringUTFChars (env, jroot, NULL);
+ flags = jflags;
+ r = guestfs_aug_init (g, root, flags);
+ (*env)->ReleaseStringUTFChars (env, jroot, root);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1close
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_aug_close (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs__1aug_1defvar
+ (JNIEnv *env, jobject obj, jlong jg, jstring jname, jstring jexpr)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *name;
+ const char *expr;
+
+ name = (*env)->GetStringUTFChars (env, jname, NULL);
+ expr = (*env)->GetStringUTFChars (env, jexpr, NULL);
+ r = guestfs_aug_defvar (g, name, expr);
+ (*env)->ReleaseStringUTFChars (env, jname, name);
+ (*env)->ReleaseStringUTFChars (env, jexpr, expr);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT jobject JNICALL
+Java_com_redhat_et_libguestfs__1aug_1defnode
+ (JNIEnv *env, jobject obj, jlong jg, jstring jname, jstring jexpr, jstring jval)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobject jr;
+ jclass cl;
+ jfieldID fl;
+ struct guestfs_int_bool *r;
+ const char *name;
+ const char *expr;
+ const char *val;
+
+ name = (*env)->GetStringUTFChars (env, jname, NULL);
+ expr = (*env)->GetStringUTFChars (env, jexpr, NULL);
+ val = (*env)->GetStringUTFChars (env, jval, NULL);
+ r = guestfs_aug_defnode (g, name, expr, val);
+ (*env)->ReleaseStringUTFChars (env, jname, name);
+ (*env)->ReleaseStringUTFChars (env, jexpr, expr);
+ (*env)->ReleaseStringUTFChars (env, jval, val);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/IntBool");
+ jr = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "i", "I");
+ (*env)->SetIntField (env, jr, fl, r->i);
+ fl = (*env)->GetFieldID (env, cl, "i", "Z");
+ (*env)->SetBooleanField (env, jr, fl, r->b);
+ guestfs_free_int_bool (r);
+ return jr;
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1aug_1get
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_aug_get (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1set
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jval)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+ const char *val;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ val = (*env)->GetStringUTFChars (env, jval, NULL);
+ r = guestfs_aug_set (g, path, val);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ (*env)->ReleaseStringUTFChars (env, jval, val);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1insert
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jlabel, jboolean jbefore)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+ const char *label;
+ int before;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ label = (*env)->GetStringUTFChars (env, jlabel, NULL);
+ before = jbefore;
+ r = guestfs_aug_insert (g, path, label, before);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ (*env)->ReleaseStringUTFChars (env, jlabel, label);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs__1aug_1rm
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_aug_rm (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1mv
+ (JNIEnv *env, jobject obj, jlong jg, jstring jsrc, jstring jdest)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *src;
+ const char *dest;
+
+ src = (*env)->GetStringUTFChars (env, jsrc, NULL);
+ dest = (*env)->GetStringUTFChars (env, jdest, NULL);
+ r = guestfs_aug_mv (g, src, dest);
+ (*env)->ReleaseStringUTFChars (env, jsrc, src);
+ (*env)->ReleaseStringUTFChars (env, jdest, dest);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1aug_1match
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *path;
+ int i;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_aug_match (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1save
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_aug_save (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1aug_1load
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_aug_load (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1aug_1ls
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ const char *path;
+ int i;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_aug_ls (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1rm
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_rm (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1rmdir
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_rmdir (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1rm_1rf
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_rm_rf (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1mkdir
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_mkdir (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1mkdir_1p
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_mkdir_p (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1chmod
+ (JNIEnv *env, jobject obj, jlong jg, jint jmode, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ int mode;
+ const char *path;
+
+ mode = jmode;
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_chmod (g, mode, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1chown
+ (JNIEnv *env, jobject obj, jlong jg, jint jowner, jint jgroup, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ int owner;
+ int group;
+ const char *path;
+
+ owner = jowner;
+ group = jgroup;
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_chown (g, owner, group, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1exists
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_exists (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1file
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_is_file (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1is_1dir
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_is_dir (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1pvcreate
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_pvcreate (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1vgcreate
+ (JNIEnv *env, jobject obj, jlong jg, jstring jvolgroup, jobjectArray jphysvols)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *volgroup;
+ int physvols_len;
+ const char **physvols;
+ int i;
+
+ volgroup = (*env)->GetStringUTFChars (env, jvolgroup, NULL);
+ physvols_len = (*env)->GetArrayLength (env, jphysvols);
+ physvols = malloc (sizeof (char *) * (physvols_len+1));
+ for (i = 0; i < physvols_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jphysvols, i);
+ physvols[i] = (*env)->GetStringUTFChars (env, o, NULL);
+ }
+ physvols[physvols_len] = NULL;
+ r = guestfs_vgcreate (g, volgroup, physvols);
+ (*env)->ReleaseStringUTFChars (env, jvolgroup, volgroup);
+ for (i = 0; i < physvols_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jphysvols, i);
+ (*env)->ReleaseStringUTFChars (env, o, physvols[i]);
+ }
+ free (physvols);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1lvcreate
+ (JNIEnv *env, jobject obj, jlong jg, jstring jlogvol, jstring jvolgroup, jint jmbytes)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *logvol;
+ const char *volgroup;
+ int mbytes;
+
+ logvol = (*env)->GetStringUTFChars (env, jlogvol, NULL);
+ volgroup = (*env)->GetStringUTFChars (env, jvolgroup, NULL);
+ mbytes = jmbytes;
+ r = guestfs_lvcreate (g, logvol, volgroup, mbytes);
+ (*env)->ReleaseStringUTFChars (env, jlogvol, logvol);
+ (*env)->ReleaseStringUTFChars (env, jvolgroup, volgroup);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1mkfs
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfstype, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *fstype;
+ const char *device;
+
+ fstype = (*env)->GetStringUTFChars (env, jfstype, NULL);
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_mkfs (g, fstype, device);
+ (*env)->ReleaseStringUTFChars (env, jfstype, fstype);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1sfdisk
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jcyls, jint jheads, jint jsectors, jobjectArray jlines)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+ int cyls;
+ int heads;
+ int sectors;
+ int lines_len;
+ const char **lines;
+ int i;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ cyls = jcyls;
+ heads = jheads;
+ sectors = jsectors;
+ lines_len = (*env)->GetArrayLength (env, jlines);
+ lines = malloc (sizeof (char *) * (lines_len+1));
+ for (i = 0; i < lines_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jlines, i);
+ lines[i] = (*env)->GetStringUTFChars (env, o, NULL);
+ }
+ lines[lines_len] = NULL;
+ r = guestfs_sfdisk (g, device, cyls, heads, sectors, lines);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ for (i = 0; i < lines_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jlines, i);
+ (*env)->ReleaseStringUTFChars (env, o, lines[i]);
+ }
+ free (lines);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1write_1file
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jcontent, jint jsize)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *path;
+ const char *content;
+ int size;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ content = (*env)->GetStringUTFChars (env, jcontent, NULL);
+ size = jsize;
+ r = guestfs_write_file (g, path, content, size);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ (*env)->ReleaseStringUTFChars (env, jcontent, content);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1umount
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpathordevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *pathordevice;
+
+ pathordevice = (*env)->GetStringUTFChars (env, jpathordevice, NULL);
+ r = guestfs_umount (g, pathordevice);
+ (*env)->ReleaseStringUTFChars (env, jpathordevice, pathordevice);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1mounts
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int i;
+
+ r = guestfs_mounts (g);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1umount_1all
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_umount_all (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1lvm_1remove_1all
+ (JNIEnv *env, jobject obj, jlong jg)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+
+ r = guestfs_lvm_remove_all (g);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1file
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_file (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1command
+ (JNIEnv *env, jobject obj, jlong jg, jobjectArray jarguments)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ int arguments_len;
+ const char **arguments;
+ int i;
+
+ arguments_len = (*env)->GetArrayLength (env, jarguments);
+ arguments = malloc (sizeof (char *) * (arguments_len+1));
+ for (i = 0; i < arguments_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jarguments, i);
+ arguments[i] = (*env)->GetStringUTFChars (env, o, NULL);
+ }
+ arguments[arguments_len] = NULL;
+ r = guestfs_command (g, arguments);
+ for (i = 0; i < arguments_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jarguments, i);
+ (*env)->ReleaseStringUTFChars (env, o, arguments[i]);
+ }
+ free (arguments);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobjectArray JNICALL
+Java_com_redhat_et_libguestfs__1command_1lines
+ (JNIEnv *env, jobject obj, jlong jg, jobjectArray jarguments)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobjectArray jr;
+ int r_len;
+ jclass cl;
+ jstring jstr;
+ char **r;
+ int arguments_len;
+ const char **arguments;
+ int i;
+
+ arguments_len = (*env)->GetArrayLength (env, jarguments);
+ arguments = malloc (sizeof (char *) * (arguments_len+1));
+ for (i = 0; i < arguments_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jarguments, i);
+ arguments[i] = (*env)->GetStringUTFChars (env, o, NULL);
+ }
+ arguments[arguments_len] = NULL;
+ r = guestfs_command_lines (g, arguments);
+ for (i = 0; i < arguments_len; ++i) {
+ jobject o = (*env)->GetObjectArrayElement (env, jarguments, i);
+ (*env)->ReleaseStringUTFChars (env, o, arguments[i]);
+ }
+ free (arguments);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ for (r_len = 0; r[r_len] != NULL; ++r_len) ;
+ cl = (*env)->FindClass (env, "java/lang/String");
+ jstr = (*env)->NewStringUTF (env, "");
+ jr = (*env)->NewObjectArray (env, r_len, cl, jstr);
+ for (i = 0; i < r_len; ++i) {
+ jstr = (*env)->NewStringUTF (env, r[i]);
+ (*env)->SetObjectArrayElement (env, jr, i, jstr);
+ free (r[i]);
+ }
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobject JNICALL
+Java_com_redhat_et_libguestfs__1stat
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobject jr;
+ jclass cl;
+ jfieldID fl;
+ struct guestfs_stat *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_stat (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/Stat");
+ jr = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "dev", "J");
+ (*env)->SetLongField (env, jr, fl, r->dev);
+ fl = (*env)->GetFieldID (env, cl, "ino", "J");
+ (*env)->SetLongField (env, jr, fl, r->ino);
+ fl = (*env)->GetFieldID (env, cl, "mode", "J");
+ (*env)->SetLongField (env, jr, fl, r->mode);
+ fl = (*env)->GetFieldID (env, cl, "nlink", "J");
+ (*env)->SetLongField (env, jr, fl, r->nlink);
+ fl = (*env)->GetFieldID (env, cl, "uid", "J");
+ (*env)->SetLongField (env, jr, fl, r->uid);
+ fl = (*env)->GetFieldID (env, cl, "gid", "J");
+ (*env)->SetLongField (env, jr, fl, r->gid);
+ fl = (*env)->GetFieldID (env, cl, "rdev", "J");
+ (*env)->SetLongField (env, jr, fl, r->rdev);
+ fl = (*env)->GetFieldID (env, cl, "size", "J");
+ (*env)->SetLongField (env, jr, fl, r->size);
+ fl = (*env)->GetFieldID (env, cl, "blksize", "J");
+ (*env)->SetLongField (env, jr, fl, r->blksize);
+ fl = (*env)->GetFieldID (env, cl, "blocks", "J");
+ (*env)->SetLongField (env, jr, fl, r->blocks);
+ fl = (*env)->GetFieldID (env, cl, "atime", "J");
+ (*env)->SetLongField (env, jr, fl, r->atime);
+ fl = (*env)->GetFieldID (env, cl, "mtime", "J");
+ (*env)->SetLongField (env, jr, fl, r->mtime);
+ fl = (*env)->GetFieldID (env, cl, "ctime", "J");
+ (*env)->SetLongField (env, jr, fl, r->ctime);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobject JNICALL
+Java_com_redhat_et_libguestfs__1lstat
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobject jr;
+ jclass cl;
+ jfieldID fl;
+ struct guestfs_stat *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_lstat (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/Stat");
+ jr = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "dev", "J");
+ (*env)->SetLongField (env, jr, fl, r->dev);
+ fl = (*env)->GetFieldID (env, cl, "ino", "J");
+ (*env)->SetLongField (env, jr, fl, r->ino);
+ fl = (*env)->GetFieldID (env, cl, "mode", "J");
+ (*env)->SetLongField (env, jr, fl, r->mode);
+ fl = (*env)->GetFieldID (env, cl, "nlink", "J");
+ (*env)->SetLongField (env, jr, fl, r->nlink);
+ fl = (*env)->GetFieldID (env, cl, "uid", "J");
+ (*env)->SetLongField (env, jr, fl, r->uid);
+ fl = (*env)->GetFieldID (env, cl, "gid", "J");
+ (*env)->SetLongField (env, jr, fl, r->gid);
+ fl = (*env)->GetFieldID (env, cl, "rdev", "J");
+ (*env)->SetLongField (env, jr, fl, r->rdev);
+ fl = (*env)->GetFieldID (env, cl, "size", "J");
+ (*env)->SetLongField (env, jr, fl, r->size);
+ fl = (*env)->GetFieldID (env, cl, "blksize", "J");
+ (*env)->SetLongField (env, jr, fl, r->blksize);
+ fl = (*env)->GetFieldID (env, cl, "blocks", "J");
+ (*env)->SetLongField (env, jr, fl, r->blocks);
+ fl = (*env)->GetFieldID (env, cl, "atime", "J");
+ (*env)->SetLongField (env, jr, fl, r->atime);
+ fl = (*env)->GetFieldID (env, cl, "mtime", "J");
+ (*env)->SetLongField (env, jr, fl, r->mtime);
+ fl = (*env)->GetFieldID (env, cl, "ctime", "J");
+ (*env)->SetLongField (env, jr, fl, r->ctime);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobject JNICALL
+Java_com_redhat_et_libguestfs__1statvfs
+ (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jobject jr;
+ jclass cl;
+ jfieldID fl;
+ struct guestfs_statvfs *r;
+ const char *path;
+
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_statvfs (g, path);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ cl = (*env)->FindClass (env, "com/redhat/et/libguestfs/StatVFS");
+ jr = (*env)->AllocObject (env, cl);
+ fl = (*env)->GetFieldID (env, cl, "bsize", "J");
+ (*env)->SetLongField (env, jr, fl, r->bsize);
+ fl = (*env)->GetFieldID (env, cl, "frsize", "J");
+ (*env)->SetLongField (env, jr, fl, r->frsize);
+ fl = (*env)->GetFieldID (env, cl, "blocks", "J");
+ (*env)->SetLongField (env, jr, fl, r->blocks);
+ fl = (*env)->GetFieldID (env, cl, "bfree", "J");
+ (*env)->SetLongField (env, jr, fl, r->bfree);
+ fl = (*env)->GetFieldID (env, cl, "bavail", "J");
+ (*env)->SetLongField (env, jr, fl, r->bavail);
+ fl = (*env)->GetFieldID (env, cl, "files", "J");
+ (*env)->SetLongField (env, jr, fl, r->files);
+ fl = (*env)->GetFieldID (env, cl, "ffree", "J");
+ (*env)->SetLongField (env, jr, fl, r->ffree);
+ fl = (*env)->GetFieldID (env, cl, "favail", "J");
+ (*env)->SetLongField (env, jr, fl, r->favail);
+ fl = (*env)->GetFieldID (env, cl, "fsid", "J");
+ (*env)->SetLongField (env, jr, fl, r->fsid);
+ fl = (*env)->GetFieldID (env, cl, "flag", "J");
+ (*env)->SetLongField (env, jr, fl, r->flag);
+ fl = (*env)->GetFieldID (env, cl, "namemax", "J");
+ (*env)->SetLongField (env, jr, fl, r->namemax);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT jobject JNICALL
+Java_com_redhat_et_libguestfs__1tune2fs_1l
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ char **r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_tune2fs_l (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ throw_exception (env, "tune2fs_l: internal error: please let us know how to make a Java HashMap from JNI bindings!");
+ return NULL;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1setro
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_setro (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1setrw
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_setrw (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jboolean JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1getro
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_getro (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jboolean) r;
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1getss
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_getss (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT jint JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1getbsz
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_getbsz (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jint) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1setbsz
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jblocksize)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+ int blocksize;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ blocksize = jblocksize;
+ r = guestfs_blockdev_setbsz (g, device, blocksize);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jlong JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1getsz
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int64_t r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_getsz (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jlong) r;
+}
+
+JNIEXPORT jlong JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1getsize64
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int64_t r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_getsize64 (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return 0;
+ }
+ return (jlong) r;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1flushbufs
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_flushbufs (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1blockdev_1rereadpt
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *device;
+
+ device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+ r = guestfs_blockdev_rereadpt (g, device);
+ (*env)->ReleaseStringUTFChars (env, jdevice, device);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1upload
+ (JNIEnv *env, jobject obj, jlong jg, jstring jfilename, jstring jremotefilename)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *filename;
+ const char *remotefilename;
+
+ filename = (*env)->GetStringUTFChars (env, jfilename, NULL);
+ remotefilename = (*env)->GetStringUTFChars (env, jremotefilename, NULL);
+ r = guestfs_upload (g, filename, remotefilename);
+ (*env)->ReleaseStringUTFChars (env, jfilename, filename);
+ (*env)->ReleaseStringUTFChars (env, jremotefilename, remotefilename);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1download
+ (JNIEnv *env, jobject obj, jlong jg, jstring jremotefilename, jstring jfilename)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *remotefilename;
+ const char *filename;
+
+ remotefilename = (*env)->GetStringUTFChars (env, jremotefilename, NULL);
+ filename = (*env)->GetStringUTFChars (env, jfilename, NULL);
+ r = guestfs_download (g, remotefilename, filename);
+ (*env)->ReleaseStringUTFChars (env, jremotefilename, remotefilename);
+ (*env)->ReleaseStringUTFChars (env, jfilename, filename);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs__1checksum
+ (JNIEnv *env, jobject obj, jlong jg, jstring jcsumtype, jstring jpath)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ jstring jr;
+ char *r;
+ const char *csumtype;
+ const char *path;
+
+ csumtype = (*env)->GetStringUTFChars (env, jcsumtype, NULL);
+ path = (*env)->GetStringUTFChars (env, jpath, NULL);
+ r = guestfs_checksum (g, csumtype, path);
+ (*env)->ReleaseStringUTFChars (env, jcsumtype, csumtype);
+ (*env)->ReleaseStringUTFChars (env, jpath, path);
+ if (r == NULL) {
+ throw_exception (env, guestfs_last_error (g));
+ return NULL;
+ }
+ jr = (*env)->NewStringUTF (env, r);
+ free (r);
+ return jr;
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1tar_1in
+ (JNIEnv *env, jobject obj, jlong jg, jstring jtarfile, jstring jdirectory)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *tarfile;
+ const char *directory;
+
+ tarfile = (*env)->GetStringUTFChars (env, jtarfile, NULL);
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ r = guestfs_tar_in (g, tarfile, directory);
+ (*env)->ReleaseStringUTFChars (env, jtarfile, tarfile);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1tar_1out
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory, jstring jtarfile)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *directory;
+ const char *tarfile;
+
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ tarfile = (*env)->GetStringUTFChars (env, jtarfile, NULL);
+ r = guestfs_tar_out (g, directory, tarfile);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ (*env)->ReleaseStringUTFChars (env, jtarfile, tarfile);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1tgz_1in
+ (JNIEnv *env, jobject obj, jlong jg, jstring jtarball, jstring jdirectory)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *tarball;
+ const char *directory;
+
+ tarball = (*env)->GetStringUTFChars (env, jtarball, NULL);
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ r = guestfs_tgz_in (g, tarball, directory);
+ (*env)->ReleaseStringUTFChars (env, jtarball, tarball);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs__1tgz_1out
+ (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory, jstring jtarball)
+{
+ guestfs_h *g = (guestfs_h *) jg;
+ int r;
+ const char *directory;
+ const char *tarball;
+
+ directory = (*env)->GetStringUTFChars (env, jdirectory, NULL);
+ tarball = (*env)->GetStringUTFChars (env, jtarball, NULL);
+ r = guestfs_tgz_out (g, directory, tarball);
+ (*env)->ReleaseStringUTFChars (env, jdirectory, directory);
+ (*env)->ReleaseStringUTFChars (env, jtarball, tarball);
+ if (r == -1) {
+ throw_exception (env, guestfs_last_error (g));
+ return ;
+ }
+}
+