X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=91e3cf19ad5c80b1a088acd11496728af5f9970d;hb=6a623e37e191385c0d9285e3ec1136b2a02e6156;hp=a823d84eaed601ab3be3cf04588689ffa0f2a284;hpb=d901cc916102f1aaccfb73396b48aa303e5b8cd7;p=libguestfs.git diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index a823d84..91e3cf1 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; @@ -2739,3 +3709,280 @@ Java_com_redhat_et_libguestfs_GuestFS__1zerofree } } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1pvresize + (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_pvresize (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__1sfdisk_1N + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jn, jint jcyls, jint jheads, jint jsectors, jstring jline) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + int n; + int cyls; + int heads; + int sectors; + const char *line; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + n = jn; + cyls = jcyls; + heads = jheads; + sectors = jsectors; + line = (*env)->GetStringUTFChars (env, jline, NULL); + r = guestfs_sfdisk_N (g, device, n, cyls, heads, sectors, line); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, jline, line); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sfdisk_1l + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_l (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + 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__1sfdisk_1kernel_1geometry + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_kernel_geometry (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + 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__1sfdisk_1disk_1geometry + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_disk_geometry (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + 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__1vg_1activate_1all + (JNIEnv *env, jobject obj, jlong jg, jboolean jactivate) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + int activate; + + activate = jactivate; + r = guestfs_vg_activate_all (g, activate); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1vg_1activate + (JNIEnv *env, jobject obj, jlong jg, jboolean jactivate, jobjectArray jvolgroups) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + int activate; + int volgroups_len; + const char **volgroups; + int i; + + activate = jactivate; + volgroups_len = (*env)->GetArrayLength (env, jvolgroups); + volgroups = guestfs_safe_malloc (g, sizeof (char *) * (volgroups_len+1)); + for (i = 0; i < volgroups_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jvolgroups, i); + volgroups[i] = (*env)->GetStringUTFChars (env, o, NULL); + } + volgroups[volgroups_len] = NULL; + r = guestfs_vg_activate (g, activate, volgroups); + for (i = 0; i < volgroups_len; ++i) { + jobject o = (*env)->GetObjectArrayElement (env, jvolgroups, i); + (*env)->ReleaseStringUTFChars (env, o, volgroups[i]); + } + free (volgroups); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +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; +} +