/* 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 #include #include #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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__1set_1qemu (JNIEnv *env, jobject obj, jlong jg, jstring jqemu) { guestfs_h *g = (guestfs_h *) jg; int r; const char *qemu; qemu = (*env)->GetStringUTFChars (env, jqemu, NULL); r = guestfs_set_qemu (g, qemu); (*env)->ReleaseStringUTFChars (env, jqemu, qemu); if (r == -1) { throw_exception (env, guestfs_last_error (g)); return ; } } JNIEXPORT jstring JNICALL Java_com_redhat_et_libguestfs_GuestFS__1get_1qemu (JNIEnv *env, jobject obj, jlong jg) { guestfs_h *g = (guestfs_h *) jg; const char *r; r = guestfs_get_qemu (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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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_GuestFS__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 ; } }