X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=37cd4c9a4a7de9353e2fe9dce020aa1e3b2603aa;hp=3bf5c7e52ea9ccb606808589967744deceaa2335;hb=bcb3fc0c3336c05e9ecbbfb25c7c31b42bd3e32e;hpb=85ed8cef99c19b4143844991d14e0b848fecc5da diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 3bf5c7e..37cd4c9 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -62,6 +62,957 @@ Java_com_redhat_et_libguestfs_GuestFS__1close } JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0 + (JNIEnv *env, jobject obj, jlong jg, jstring jstr, jstring joptstr, jobjectArray jstrlist, jboolean jb, jint jinteger, jstring jfilein, jstring jfileout) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *str; + const char *optstr; + int strlist_len; + const char **strlist; + int b; + int integer; + const char *filein; + const char *fileout; + int i; + + str = (*env)->GetStringUTFChars (env, jstr, NULL); + optstr = joptstr ? (*env)->GetStringUTFChars (env, joptstr, NULL) : NULL; + strlist_len = (*env)->GetArrayLength (env, jstrlist); + strlist = guestfs_safe_malloc (g, sizeof (char *) * (strlist_len+1)); + for (i = 0; i < strlist_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jstrlist, i); + strlist[i] = (*env)->GetStringUTFChars (env, o, NULL); + } + strlist[strlist_len] = NULL; + b = jb; + integer = jinteger; + filein = (*env)->GetStringUTFChars (env, jfilein, NULL); + fileout = (*env)->GetStringUTFChars (env, jfileout, NULL); + r = guestfs_test0 (g, str, optstr, strlist, b, integer, filein, fileout); + (*env)->ReleaseStringUTFChars (env, jstr, str); + if (joptstr) + (*env)->ReleaseStringUTFChars (env, joptstr, optstr); + for (i = 0; i < strlist_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jstrlist, i); + (*env)->ReleaseStringUTFChars (env, o, strlist[i]); + } + free (strlist); + (*env)->ReleaseStringUTFChars (env, jfilein, filein); + (*env)->ReleaseStringUTFChars (env, jfileout, fileout); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jint JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rint + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rint (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jint) r; +} + +JNIEXPORT jint JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rinterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + + r = guestfs_test0rinterr (g); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jint) r; +} + +JNIEXPORT jlong JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rint64 + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int64_t r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rint64 (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jlong) r; +} + +JNIEXPORT jlong JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rint64err + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int64_t r; + + r = guestfs_test0rint64err (g); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jlong) r; +} + +JNIEXPORT jboolean JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rbool + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rbool (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jboolean) r; +} + +JNIEXPORT jboolean JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rboolerr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + + r = guestfs_test0rboolerr (g); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jboolean) r; +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rconststring + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + const char *r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rconststring (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + return (*env)->NewStringUTF (env, r); +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rconststringerr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + const char *r; + + r = guestfs_test0rconststringerr (g); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + return (*env)->NewStringUTF (env, r); +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rstring + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rstring (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + 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__1test0rstringerr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + + r = guestfs_test0rstringerr (g); + 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__1test0rstringlist + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + int r_len; + jclass cl; + jstring jstr; + char **r; + const char *val; + int i; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rstringlist (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + 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__1test0rstringlisterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + int r_len; + jclass cl; + jstring jstr; + char **r; + int i; + + r = guestfs_test0rstringlisterr (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 jobject JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rintbool + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_int_bool *r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rintbool (g, val); + (*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 jobject JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rintboolerr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_int_bool *r; + + r = guestfs_test0rintboolerr (g); + 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 jobjectArray JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rpvlist + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_pv_list *r; + const char *val; + int i; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rpvlist (g, val); + (*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/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__1test0rpvlisterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_pv_list *r; + int i; + + r = guestfs_test0rpvlisterr (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__1test0rvglist + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_vg_list *r; + const char *val; + int i; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rvglist (g, val); + (*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/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__1test0rvglisterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_vg_list *r; + int i; + + r = guestfs_test0rvglisterr (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__1test0rlvlist + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_lv_list *r; + const char *val; + int i; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rlvlist (g, val); + (*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/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__1test0rlvlisterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + jclass cl; + jfieldID fl; + jobject jfl; + struct guestfs_lvm_lv_list *r; + int i; + + r = guestfs_test0rlvlisterr (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 jobject JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rstat + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_stat *r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rstat (g, val); + (*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/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__1test0rstaterr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_stat *r; + + r = guestfs_test0rstaterr (g); + 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__1test0rstatvfs + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_statvfs *r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rstatvfs (g, val); + (*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/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__1test0rstatvfserr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobject jr; + jclass cl; + jfieldID fl; + struct guestfs_statvfs *r; + + r = guestfs_test0rstatvfserr (g); + 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__1test0rhashtable + (JNIEnv *env, jobject obj, jlong jg, jstring jval) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + char **r; + const char *val; + + val = (*env)->GetStringUTFChars (env, jval, NULL); + r = guestfs_test0rhashtable (g, val); + (*env)->ReleaseStringUTFChars (env, jval, val); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + throw_exception (env, "test0rhashtable: internal error: please let us know how to make a Java HashMap from JNI bindings!"); + return NULL; +} + +JNIEXPORT jobject JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1test0rhashtableerr + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + char **r; + + r = guestfs_test0rhashtableerr (g); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + throw_exception (env, "test0rhashtableerr: 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__1launch (JNIEnv *env, jobject obj, jlong jg) { @@ -138,6 +1089,23 @@ Java_com_redhat_et_libguestfs_GuestFS__1add_1cdrom } JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1add_1drive_1ro + (JNIEnv *env, jobject obj, jlong jg, jstring jfilename) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *filename; + + filename = (*env)->GetStringUTFChars (env, jfilename, NULL); + r = guestfs_add_drive_ro (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) { @@ -147,10 +1115,11 @@ Java_com_redhat_et_libguestfs_GuestFS__1config const char *qemuvalue; qemuparam = (*env)->GetStringUTFChars (env, jqemuparam, NULL); - qemuvalue = (*env)->GetStringUTFChars (env, jqemuvalue, NULL); + qemuvalue = jqemuvalue ? (*env)->GetStringUTFChars (env, jqemuvalue, NULL) : NULL; r = guestfs_config (g, qemuparam, qemuvalue); (*env)->ReleaseStringUTFChars (env, jqemuparam, qemuparam); - (*env)->ReleaseStringUTFChars (env, jqemuvalue, qemuvalue); + if (jqemuvalue) + (*env)->ReleaseStringUTFChars (env, jqemuvalue, qemuvalue); if (r == -1) { throw_exception (env, guestfs_last_error (g)); return ; @@ -978,10 +1947,11 @@ Java_com_redhat_et_libguestfs_GuestFS__1aug_1defvar const char *expr; name = (*env)->GetStringUTFChars (env, jname, NULL); - expr = (*env)->GetStringUTFChars (env, jexpr, NULL); + expr = jexpr ? (*env)->GetStringUTFChars (env, jexpr, NULL) : NULL; r = guestfs_aug_defvar (g, name, expr); (*env)->ReleaseStringUTFChars (env, jname, name); - (*env)->ReleaseStringUTFChars (env, jexpr, expr); + if (jexpr) + (*env)->ReleaseStringUTFChars (env, jexpr, expr); if (r == -1) { throw_exception (env, guestfs_last_error (g)); return 0; @@ -2894,3 +3864,263 @@ Java_com_redhat_et_libguestfs_GuestFS__1vg_1activate } } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1lvresize + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jmbytes) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + int mbytes; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + mbytes = jmbytes; + r = guestfs_lvresize (g, device, mbytes); + (*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__1resize2fs + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_resize2fs (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jobjectArray JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1find + (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory) +{ + guestfs_h *g = (guestfs_h *) (long) 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_find (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 void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1e2fsck_1f + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_e2fsck_f (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__1sleep + (JNIEnv *env, jobject obj, jlong jg, jint jsecs) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + int secs; + + secs = jsecs; + r = guestfs_sleep (g, secs); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jint JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1ntfs_13g_1probe + (JNIEnv *env, jobject obj, jlong jg, jboolean jrw, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + int rw; + const char *device; + + rw = jrw; + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_ntfs_3g_probe (g, rw, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jint) r; +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sh + (JNIEnv *env, jobject obj, jlong jg, jstring jcommand) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *command; + + command = (*env)->GetStringUTFChars (env, jcommand, NULL); + r = guestfs_sh (g, command); + (*env)->ReleaseStringUTFChars (env, jcommand, command); + 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__1sh_1lines + (JNIEnv *env, jobject obj, jlong jg, jstring jcommand) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + int r_len; + jclass cl; + jstring jstr; + char **r; + const char *command; + int i; + + command = (*env)->GetStringUTFChars (env, jcommand, NULL); + r = guestfs_sh_lines (g, command); + (*env)->ReleaseStringUTFChars (env, jcommand, command); + 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__1glob_1expand + (JNIEnv *env, jobject obj, jlong jg, jstring jpattern) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jobjectArray jr; + int r_len; + jclass cl; + jstring jstr; + char **r; + const char *pattern; + int i; + + pattern = (*env)->GetStringUTFChars (env, jpattern, NULL); + r = guestfs_glob_expand (g, pattern); + (*env)->ReleaseStringUTFChars (env, jpattern, pattern); + 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__1scrub_1device + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_scrub_device (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__1scrub_1file + (JNIEnv *env, jobject obj, jlong jg, jstring jfile) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *file; + + file = (*env)->GetStringUTFChars (env, jfile, NULL); + r = guestfs_scrub_file (g, file); + (*env)->ReleaseStringUTFChars (env, jfile, file); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1scrub_1freespace + (JNIEnv *env, jobject obj, jlong jg, jstring jdir) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *dir; + + dir = (*env)->GetStringUTFChars (env, jdir, NULL); + r = guestfs_scrub_freespace (g, dir); + (*env)->ReleaseStringUTFChars (env, jdir, dir); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} +