Use safe_malloc and/or check returns from malloc (Jim Meyering).
[libguestfs.git] / java / com_redhat_et_libguestfs_GuestFS.c
index 5141278..f012a4b 100644 (file)
@@ -50,14 +50,14 @@ Java_com_redhat_et_libguestfs_GuestFS__1create
     return 0;
   }
   guestfs_set_error_handler (g, NULL, NULL);
-  return (jlong) g;
+  return (jlong) (long) g;
 }
 
 JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1close
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   guestfs_close (g);
 }
 
@@ -65,7 +65,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1launch
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_launch (g);
@@ -79,7 +79,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1wait_1ready
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_wait_ready (g);
@@ -93,7 +93,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1kill_1subprocess
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_kill_subprocess (g);
@@ -107,7 +107,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1add_1drive
   (JNIEnv *env, jobject obj, jlong jg, jstring jfilename)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *filename;
 
@@ -124,7 +124,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1add_1cdrom
   (JNIEnv *env, jobject obj, jlong jg, jstring jfilename)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *filename;
 
@@ -141,7 +141,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1config
   (JNIEnv *env, jobject obj, jlong jg, jstring jqemuparam, jstring jqemuvalue)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *qemuparam;
   const char *qemuvalue;
@@ -158,10 +158,42 @@ Java_com_redhat_et_libguestfs_GuestFS__1config
 }
 
 JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1set_1qemu
+  (JNIEnv *env, jobject obj, jlong jg, jstring jqemu)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  int r;
+  const char *qemu;
+
+  qemu = (*env)->GetStringUTFChars (env, jqemu, NULL);
+  r = guestfs_set_qemu (g, qemu);
+  (*env)->ReleaseStringUTFChars (env, jqemu, qemu);
+  if (r == -1) {
+    throw_exception (env, guestfs_last_error (g));
+    return ;
+  }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1get_1qemu
+  (JNIEnv *env, jobject obj, jlong jg)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  const char *r;
+
+  r = guestfs_get_qemu (g);
+  if (r == NULL) {
+    throw_exception (env, guestfs_last_error (g));
+    return NULL;
+  }
+  return (*env)->NewStringUTF (env, r);
+}
+
+JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1set_1path
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -178,7 +210,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1get_1path
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   const char *r;
 
   r = guestfs_get_path (g);
@@ -193,7 +225,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1set_1autosync
   (JNIEnv *env, jobject obj, jlong jg, jboolean jautosync)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   int autosync;
 
@@ -209,7 +241,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1get_1autosync
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_get_autosync (g);
@@ -224,7 +256,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1set_1verbose
   (JNIEnv *env, jobject obj, jlong jg, jboolean jverbose)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   int verbose;
 
@@ -240,7 +272,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1get_1verbose
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_get_verbose (g);
@@ -255,7 +287,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1ready
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_is_ready (g);
@@ -270,7 +302,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1config
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_is_config (g);
@@ -285,7 +317,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1launching
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_is_launching (g);
@@ -300,7 +332,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1busy
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_is_busy (g);
@@ -315,7 +347,7 @@ JNIEXPORT jint JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1get_1state
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_get_state (g);
@@ -330,7 +362,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1set_1busy
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_set_busy (g);
@@ -344,7 +376,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1set_1ready
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_set_ready (g);
@@ -358,7 +390,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1mount
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring jmountpoint)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
   const char *mountpoint;
@@ -378,7 +410,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1sync
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_sync (g);
@@ -392,7 +424,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1touch
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -409,7 +441,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1cat
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   const char *path;
@@ -430,7 +462,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1ll
   (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   const char *directory;
@@ -451,7 +483,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1ls
   (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -484,7 +516,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1list_1devices
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -514,7 +546,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1list_1partitions
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -544,7 +576,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1pvs
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -574,7 +606,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1vgs
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -604,7 +636,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1lvs
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -634,7 +666,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1pvs_1full
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   jclass cl;
   jfieldID fl;
@@ -694,7 +726,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1vgs_1full
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   jclass cl;
   jfieldID fl;
@@ -764,7 +796,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1lvs_1full
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   jclass cl;
   jfieldID fl;
@@ -828,7 +860,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1read_1lines
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -861,7 +893,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1init
   (JNIEnv *env, jobject obj, jlong jg, jstring jroot, jint jflags)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *root;
   int flags;
@@ -880,7 +912,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1close
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_aug_close (g);
@@ -894,7 +926,7 @@ JNIEXPORT jint JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1defvar
   (JNIEnv *env, jobject obj, jlong jg, jstring jname, jstring jexpr)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *name;
   const char *expr;
@@ -915,7 +947,7 @@ JNIEXPORT jobject JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1defnode
   (JNIEnv *env, jobject obj, jlong jg, jstring jname, jstring jexpr, jstring jval)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobject jr;
   jclass cl;
   jfieldID fl;
@@ -949,7 +981,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1get
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   const char *path;
@@ -970,7 +1002,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1set
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jval)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
   const char *val;
@@ -990,7 +1022,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1insert
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jlabel, jboolean jbefore)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
   const char *label;
@@ -1012,7 +1044,7 @@ JNIEXPORT jint JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1rm
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1030,7 +1062,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1mv
   (JNIEnv *env, jobject obj, jlong jg, jstring jsrc, jstring jdest)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *src;
   const char *dest;
@@ -1050,7 +1082,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1match
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -1083,7 +1115,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1save
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_aug_save (g);
@@ -1097,7 +1129,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1load
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_aug_load (g);
@@ -1111,7 +1143,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1aug_1ls
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -1144,7 +1176,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1rm
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1161,7 +1193,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1rmdir
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1178,7 +1210,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1rm_1rf
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1195,7 +1227,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1mkdir
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1212,7 +1244,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1mkdir_1p
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1229,7 +1261,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1chmod
   (JNIEnv *env, jobject obj, jlong jg, jint jmode, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   int mode;
   const char *path;
@@ -1248,7 +1280,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1chown
   (JNIEnv *env, jobject obj, jlong jg, jint jowner, jint jgroup, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   int owner;
   int group;
@@ -1269,7 +1301,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1exists
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1287,7 +1319,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1file
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1305,7 +1337,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1is_1dir
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
 
@@ -1323,7 +1355,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1pvcreate
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1340,7 +1372,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1vgcreate
   (JNIEnv *env, jobject obj, jlong jg, jstring jvolgroup, jobjectArray jphysvols)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *volgroup;
   int physvols_len;
@@ -1349,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);
@@ -1372,7 +1404,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1lvcreate
   (JNIEnv *env, jobject obj, jlong jg, jstring jlogvol, jstring jvolgroup, jint jmbytes)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *logvol;
   const char *volgroup;
@@ -1394,7 +1426,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1mkfs
   (JNIEnv *env, jobject obj, jlong jg, jstring jfstype, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *fstype;
   const char *device;
@@ -1414,7 +1446,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1sfdisk
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jcyls, jint jheads, jint jsectors, jobjectArray jlines)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
   int cyls;
@@ -1429,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);
@@ -1452,7 +1484,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1write_1file
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath, jstring jcontent, jint jsize)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *path;
   const char *content;
@@ -1474,7 +1506,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1umount
   (JNIEnv *env, jobject obj, jlong jg, jstring jpathordevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *pathordevice;
 
@@ -1491,7 +1523,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1mounts
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -1521,7 +1553,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1umount_1all
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_umount_all (g);
@@ -1535,7 +1567,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1lvm_1remove_1all
   (JNIEnv *env, jobject obj, jlong jg)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
 
   r = guestfs_lvm_remove_all (g);
@@ -1549,7 +1581,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1file
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   const char *path;
@@ -1570,7 +1602,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1command
   (JNIEnv *env, jobject obj, jlong jg, jobjectArray jarguments)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   int arguments_len;
@@ -1578,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);
@@ -1603,7 +1635,7 @@ JNIEXPORT jobjectArray JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1command_1lines
   (JNIEnv *env, jobject obj, jlong jg, jobjectArray jarguments)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobjectArray jr;
   int r_len;
   jclass cl;
@@ -1614,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);
@@ -1647,7 +1679,7 @@ JNIEXPORT jobject JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1stat
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobject jr;
   jclass cl;
   jfieldID fl;
@@ -1697,7 +1729,7 @@ JNIEXPORT jobject JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1lstat
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobject jr;
   jclass cl;
   jfieldID fl;
@@ -1747,7 +1779,7 @@ JNIEXPORT jobject JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1statvfs
   (JNIEnv *env, jobject obj, jlong jg, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jobject jr;
   jclass cl;
   jfieldID fl;
@@ -1793,7 +1825,7 @@ JNIEXPORT jobject JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1tune2fs_1l
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   char **r;
   const char *device;
 
@@ -1812,7 +1844,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1setro
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1829,7 +1861,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1setrw
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1846,7 +1878,7 @@ JNIEXPORT jboolean JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1getro
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1864,7 +1896,7 @@ JNIEXPORT jint JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1getss
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1882,7 +1914,7 @@ JNIEXPORT jint JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1getbsz
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1900,7 +1932,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1setbsz
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jblocksize)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
   int blocksize;
@@ -1919,7 +1951,7 @@ JNIEXPORT jlong JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1getsz
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int64_t r;
   const char *device;
 
@@ -1937,7 +1969,7 @@ JNIEXPORT jlong JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1getsize64
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int64_t r;
   const char *device;
 
@@ -1955,7 +1987,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1flushbufs
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1972,7 +2004,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1blockdev_1rereadpt
   (JNIEnv *env, jobject obj, jlong jg, jstring jdevice)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *device;
 
@@ -1989,7 +2021,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1upload
   (JNIEnv *env, jobject obj, jlong jg, jstring jfilename, jstring jremotefilename)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *filename;
   const char *remotefilename;
@@ -2009,7 +2041,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1download
   (JNIEnv *env, jobject obj, jlong jg, jstring jremotefilename, jstring jfilename)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *remotefilename;
   const char *filename;
@@ -2029,7 +2061,7 @@ JNIEXPORT jstring JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1checksum
   (JNIEnv *env, jobject obj, jlong jg, jstring jcsumtype, jstring jpath)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   jstring jr;
   char *r;
   const char *csumtype;
@@ -2053,7 +2085,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1tar_1in
   (JNIEnv *env, jobject obj, jlong jg, jstring jtarfile, jstring jdirectory)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *tarfile;
   const char *directory;
@@ -2073,7 +2105,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1tar_1out
   (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory, jstring jtarfile)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *directory;
   const char *tarfile;
@@ -2093,7 +2125,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1tgz_1in
   (JNIEnv *env, jobject obj, jlong jg, jstring jtarball, jstring jdirectory)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *tarball;
   const char *directory;
@@ -2113,7 +2145,7 @@ JNIEXPORT void JNICALL
 Java_com_redhat_et_libguestfs_GuestFS__1tgz_1out
   (JNIEnv *env, jobject obj, jlong jg, jstring jdirectory, jstring jtarball)
 {
-  guestfs_h *g = (guestfs_h *) jg;
+  guestfs_h *g = (guestfs_h *) (long) jg;
   int r;
   const char *directory;
   const char *tarball;
@@ -2129,3 +2161,241 @@ Java_com_redhat_et_libguestfs_GuestFS__1tgz_1out
   }
 }
 
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1mount_1ro
+  (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring jmountpoint)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  int r;
+  const char *device;
+  const char *mountpoint;
+
+  device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+  mountpoint = (*env)->GetStringUTFChars (env, jmountpoint, NULL);
+  r = guestfs_mount_ro (g, device, mountpoint);
+  (*env)->ReleaseStringUTFChars (env, jdevice, device);
+  (*env)->ReleaseStringUTFChars (env, jmountpoint, mountpoint);
+  if (r == -1) {
+    throw_exception (env, guestfs_last_error (g));
+    return ;
+  }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1mount_1options
+  (JNIEnv *env, jobject obj, jlong jg, jstring joptions, jstring jdevice, jstring jmountpoint)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  int r;
+  const char *options;
+  const char *device;
+  const char *mountpoint;
+
+  options = (*env)->GetStringUTFChars (env, joptions, NULL);
+  device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+  mountpoint = (*env)->GetStringUTFChars (env, jmountpoint, NULL);
+  r = guestfs_mount_options (g, options, device, mountpoint);
+  (*env)->ReleaseStringUTFChars (env, joptions, options);
+  (*env)->ReleaseStringUTFChars (env, jdevice, device);
+  (*env)->ReleaseStringUTFChars (env, jmountpoint, mountpoint);
+  if (r == -1) {
+    throw_exception (env, guestfs_last_error (g));
+    return ;
+  }
+}
+
+JNIEXPORT void JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1mount_1vfs
+  (JNIEnv *env, jobject obj, jlong jg, jstring joptions, jstring jvfstype, jstring jdevice, jstring jmountpoint)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  int r;
+  const char *options;
+  const char *vfstype;
+  const char *device;
+  const char *mountpoint;
+
+  options = (*env)->GetStringUTFChars (env, joptions, NULL);
+  vfstype = (*env)->GetStringUTFChars (env, jvfstype, NULL);
+  device = (*env)->GetStringUTFChars (env, jdevice, NULL);
+  mountpoint = (*env)->GetStringUTFChars (env, jmountpoint, NULL);
+  r = guestfs_mount_vfs (g, options, vfstype, device, mountpoint);
+  (*env)->ReleaseStringUTFChars (env, joptions, options);
+  (*env)->ReleaseStringUTFChars (env, jvfstype, vfstype);
+  (*env)->ReleaseStringUTFChars (env, jdevice, device);
+  (*env)->ReleaseStringUTFChars (env, jmountpoint, mountpoint);
+  if (r == -1) {
+    throw_exception (env, guestfs_last_error (g));
+    return ;
+  }
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_redhat_et_libguestfs_GuestFS__1debug
+  (JNIEnv *env, jobject obj, jlong jg, jstring jsubcmd, jobjectArray jextraargs)
+{
+  guestfs_h *g = (guestfs_h *) (long) jg;
+  jstring jr;
+  char *r;
+  const char *subcmd;
+  int extraargs_len;
+  const char **extraargs;
+  int i;
+
+  subcmd = (*env)->GetStringUTFChars (env, jsubcmd, NULL);
+  extraargs_len = (*env)->GetArrayLength (env, jextraargs);
+  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);
+  }
+  extraargs[extraargs_len] = NULL;
+  r = guestfs_debug (g, subcmd, extraargs);
+  (*env)->ReleaseStringUTFChars (env, jsubcmd, subcmd);
+  for (i = 0; i < extraargs_len; ++i) {
+    jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i);
+    (*env)->ReleaseStringUTFChars (env, o, extraargs[i]);
+  }
+  free (extraargs);
+  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__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;
+}
+