X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=da287b15ae7edaffc2c850ae5e1a7dac251c70ad;hp=4b96c2621f9a8194d4727be6abf5889d9995bbbb;hb=f47dafd23186938a22d41739d9bc695c7760b912;hpb=8f9f02d483b87c787d089cf9329f5f1b81d3a77e diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 4b96c26..da287b1 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -1381,7 +1381,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1vgcreate volgroup = (*env)->GetStringUTFChars (env, jvolgroup, NULL); physvols_len = (*env)->GetArrayLength (env, jphysvols); - physvols = malloc (sizeof (char *) * (physvols_len+1)); + physvols = guestfs_safe_malloc (g, sizeof (char *) * (physvols_len+1)); for (i = 0; i < physvols_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jphysvols, i); physvols[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1461,7 +1461,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1sfdisk heads = jheads; sectors = jsectors; lines_len = (*env)->GetArrayLength (env, jlines); - lines = malloc (sizeof (char *) * (lines_len+1)); + lines = guestfs_safe_malloc (g, sizeof (char *) * (lines_len+1)); for (i = 0; i < lines_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jlines, i); lines[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1610,7 +1610,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1command int i; arguments_len = (*env)->GetArrayLength (env, jarguments); - arguments = malloc (sizeof (char *) * (arguments_len+1)); + arguments = guestfs_safe_malloc (g, sizeof (char *) * (arguments_len+1)); for (i = 0; i < arguments_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jarguments, i); arguments[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1646,7 +1646,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1command_1lines int i; arguments_len = (*env)->GetArrayLength (env, jarguments); - arguments = malloc (sizeof (char *) * (arguments_len+1)); + arguments = guestfs_safe_malloc (g, sizeof (char *) * (arguments_len+1)); for (i = 0; i < arguments_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jarguments, i); arguments[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -2244,7 +2244,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1debug subcmd = (*env)->GetStringUTFChars (env, jsubcmd, NULL); extraargs_len = (*env)->GetArrayLength (env, jextraargs); - extraargs = malloc (sizeof (char *) * (extraargs_len+1)); + extraargs = guestfs_safe_malloc (g, sizeof (char *) * (extraargs_len+1)); for (i = 0; i < extraargs_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i); extraargs[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -2266,3 +2266,323 @@ Java_com_redhat_et_libguestfs_GuestFS__1debug return jr; } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1lvremove + (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_lvremove (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__1vgremove + (JNIEnv *env, jobject obj, jlong jg, jstring jvgname) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *vgname; + + vgname = (*env)->GetStringUTFChars (env, jvgname, NULL); + r = guestfs_vgremove (g, vgname); + (*env)->ReleaseStringUTFChars (env, jvgname, vgname); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1pvremove + (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_pvremove (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__1set_1e2label + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring jlabel) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + const char *label; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + label = (*env)->GetStringUTFChars (env, jlabel, NULL); + r = guestfs_set_e2label (g, device, label); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, jlabel, label); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1get_1e2label + (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_get_e2label (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__1set_1e2uuid + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring juuid) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + const char *uuid; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + uuid = (*env)->GetStringUTFChars (env, juuid, NULL); + r = guestfs_set_e2uuid (g, device, uuid); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, juuid, uuid); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1get_1e2uuid + (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_get_e2uuid (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 jint JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1fsck + (JNIEnv *env, jobject obj, jlong jg, jstring jfstype, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *fstype; + const char *device; + + fstype = (*env)->GetStringUTFChars (env, jfstype, NULL); + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_fsck (g, fstype, device); + (*env)->ReleaseStringUTFChars (env, jfstype, fstype); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jint) r; +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1zero + (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_zero (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__1grub_1install + (JNIEnv *env, jobject obj, jlong jg, jstring jroot, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *root; + const char *device; + + root = (*env)->GetStringUTFChars (env, jroot, NULL); + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_grub_install (g, root, device); + (*env)->ReleaseStringUTFChars (env, jroot, root); + (*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__1cp + (JNIEnv *env, jobject obj, jlong jg, jstring jsrc, jstring jdest) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *src; + const char *dest; + + src = (*env)->GetStringUTFChars (env, jsrc, NULL); + dest = (*env)->GetStringUTFChars (env, jdest, NULL); + r = guestfs_cp (g, src, dest); + (*env)->ReleaseStringUTFChars (env, jsrc, src); + (*env)->ReleaseStringUTFChars (env, jdest, dest); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1cp_1a + (JNIEnv *env, jobject obj, jlong jg, jstring jsrc, jstring jdest) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *src; + const char *dest; + + src = (*env)->GetStringUTFChars (env, jsrc, NULL); + dest = (*env)->GetStringUTFChars (env, jdest, NULL); + r = guestfs_cp_a (g, src, dest); + (*env)->ReleaseStringUTFChars (env, jsrc, src); + (*env)->ReleaseStringUTFChars (env, jdest, dest); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1mv + (JNIEnv *env, jobject obj, jlong jg, jstring jsrc, jstring jdest) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *src; + const char *dest; + + src = (*env)->GetStringUTFChars (env, jsrc, NULL); + dest = (*env)->GetStringUTFChars (env, jdest, NULL); + r = guestfs_mv (g, src, dest); + (*env)->ReleaseStringUTFChars (env, jsrc, src); + (*env)->ReleaseStringUTFChars (env, jdest, dest); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1drop_1caches + (JNIEnv *env, jobject obj, jlong jg, jint jwhattodrop) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + int whattodrop; + + whattodrop = jwhattodrop; + r = guestfs_drop_caches (g, whattodrop); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1dmesg + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + + r = guestfs_dmesg (g); + 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__1ping_1daemon + (JNIEnv *env, jobject obj, jlong jg) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + + r = guestfs_ping_daemon (g); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jboolean JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1equal + (JNIEnv *env, jobject obj, jlong jg, jstring jfile1, jstring jfile2) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *file1; + const char *file2; + + file1 = (*env)->GetStringUTFChars (env, jfile1, NULL); + file2 = (*env)->GetStringUTFChars (env, jfile2, NULL); + r = guestfs_equal (g, file1, file2); + (*env)->ReleaseStringUTFChars (env, jfile1, file1); + (*env)->ReleaseStringUTFChars (env, jfile2, file2); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return 0; + } + return (jboolean) r; +} +