X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=dea916e9a28990c58701f52dd3a6d11efda6ec42;hb=b8b89f509c353fb662794c58bc840c8468c6e18f;hp=1850f2144e4cc6521d09c2860619039896258f4f;hpb=ca49c50e06834bbc68e21630a5552c57494f2b53;p=libguestfs.git diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 1850f21..dea916e 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -2930,3 +2930,53 @@ Java_com_redhat_et_libguestfs_GuestFS__1resize2fs } } +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 ; + } +} +