X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=a58b489a7eb73bd538ebdb08c7fa869ffe636488;hb=e820df70c7c7486cc4d5cc9f3e7ddbbae195fd41;hp=206f2dc38af9863328de7e5d48593a1566198825;hpb=b2ed0f4c55c2bd3d07341ba2207f0cb238eb4e18;p=libguestfs.git diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 206f2dc..a58b489 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -4371,3 +4371,74 @@ Java_com_redhat_et_libguestfs_GuestFS__1df_1h return jr; } +JNIEXPORT jlong JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1du + (JNIEnv *env, jobject obj, jlong jg, jstring jpath) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int64_t r; + const char *path; + + path = (*env)->GetStringUTFChars (env, jpath, NULL); + r = guestfs_du (g, path); + (*env)->ReleaseStringUTFChars (env, jpath, path); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jlong) r; +} + +JNIEXPORT jobjectArray JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1initrd_1list + (JNIEnv *env, jobject obj, jlong jg, jstring jpath) +{ + guestfs_h *g = (guestfs_h *) (long) 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_initrd_list (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__1mount_1loop + (JNIEnv *env, jobject obj, jlong jg, jstring jfile, jstring jmountpoint) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *file; + const char *mountpoint; + + file = (*env)->GetStringUTFChars (env, jfile, NULL); + mountpoint = (*env)->GetStringUTFChars (env, jmountpoint, NULL); + r = guestfs_mount_loop (g, file, mountpoint); + (*env)->ReleaseStringUTFChars (env, jfile, file); + (*env)->ReleaseStringUTFChars (env, jmountpoint, mountpoint); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} +