Generated code for mknod, mkfifo, mknod_b, mknod_c, umask.
[libguestfs.git] / haskell / Guestfs.hs
index 210274e..8370651 100644 (file)
 
 module Guestfs (
   create,
+  test0,
+  test0rint,
+  test0rinterr,
+  test0rint64,
+  test0rint64err,
   launch,
   wait_ready,
   kill_subprocess,
@@ -34,14 +39,23 @@ module Guestfs (
   set_qemu,
   set_path,
   set_append,
+  set_autosync,
+  set_verbose,
+  get_state,
   set_busy,
   set_ready,
   end_busy,
+  set_memsize,
+  get_memsize,
   mount,
   sync,
   touch,
+  aug_init,
   aug_close,
+  aug_defvar,
   aug_set,
+  aug_insert,
+  aug_rm,
   aug_mv,
   aug_save,
   aug_load,
@@ -50,14 +64,24 @@ module Guestfs (
   rm_rf,
   mkdir,
   mkdir_p,
+  chmod,
+  chown,
   pvcreate,
   vgcreate,
+  lvcreate,
   mkfs,
+  sfdisk,
+  write_file,
   umount,
   umount_all,
   lvm_remove_all,
   blockdev_setro,
   blockdev_setrw,
+  blockdev_getss,
+  blockdev_getbsz,
+  blockdev_setbsz,
+  blockdev_getsz,
+  blockdev_getsize64,
   blockdev_flushbufs,
   blockdev_rereadpt,
   upload,
@@ -74,19 +98,44 @@ module Guestfs (
   pvremove,
   set_e2label,
   set_e2uuid,
+  fsck,
   zero,
   grub_install,
   cp,
   cp_a,
   mv,
+  drop_caches,
   ping_daemon,
   zerofree,
   pvresize,
+  sfdisk_N,
+  vg_activate_all,
+  vg_activate,
+  lvresize,
   resize2fs,
-  e2fsck_f
+  e2fsck_f,
+  sleep,
+  ntfs_3g_probe,
+  scrub_device,
+  scrub_file,
+  scrub_freespace,
+  wc_l,
+  wc_w,
+  wc_c,
+  du,
+  mount_loop,
+  mkswap,
+  mkswap_L,
+  mkswap_U,
+  mknod,
+  mkfifo,
+  mknod_b,
+  mknod_c,
+  umask
   ) where
 import Foreign
 import Foreign.C
+import Foreign.C.Types
 import IO
 import Control.Exception
 import Data.Typeable
@@ -133,6 +182,66 @@ last_error h = do
     then return "no error"
     else peekCString str
 
+foreign import ccall unsafe "guestfs_test0" c_test0
+  :: GuestfsP -> CString -> CString -> Ptr CString -> CInt -> CInt -> CString -> CString -> IO (CInt)
+
+test0 :: GuestfsH -> String -> Maybe String -> [String] -> Bool -> Int -> String -> String -> IO ()
+test0 h str optstr strlist b integer filein fileout = do
+  r <- withCString str $ \str -> maybeWith withCString optstr $ \optstr -> withMany withCString strlist $ \strlist -> withArray0 nullPtr strlist $ \strlist -> withCString filein $ \filein -> withCString fileout $ \fileout -> withForeignPtr h (\p -> c_test0 p str optstr strlist (fromBool b) (fromIntegral integer) filein fileout)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_test0rint" c_test0rint
+  :: GuestfsP -> CString -> IO (CInt)
+
+test0rint :: GuestfsH -> String -> IO (Int)
+test0rint h val = do
+  r <- withCString val $ \val -> withForeignPtr h (\p -> c_test0rint p val)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_test0rinterr" c_test0rinterr
+  :: GuestfsP -> IO (CInt)
+
+test0rinterr :: GuestfsH -> IO (Int)
+test0rinterr h = do
+  r <- withForeignPtr h (\p -> c_test0rinterr p)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_test0rint64" c_test0rint64
+  :: GuestfsP -> CString -> IO (Int64)
+
+test0rint64 :: GuestfsH -> String -> IO (Integer)
+test0rint64 h val = do
+  r <- withCString val $ \val -> withForeignPtr h (\p -> c_test0rint64 p val)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_test0rint64err" c_test0rint64err
+  :: GuestfsP -> IO (Int64)
+
+test0rint64err :: GuestfsH -> IO (Integer)
+test0rint64err h = do
+  r <- withForeignPtr h (\p -> c_test0rint64err p)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_launch" c_launch
   :: GuestfsP -> IO (CInt)
 
@@ -253,6 +362,42 @@ set_append h append = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_set_autosync" c_set_autosync
+  :: GuestfsP -> CInt -> IO (CInt)
+
+set_autosync :: GuestfsH -> Bool -> IO ()
+set_autosync h autosync = do
+  r <- withForeignPtr h (\p -> c_set_autosync p (fromBool autosync))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_set_verbose" c_set_verbose
+  :: GuestfsP -> CInt -> IO (CInt)
+
+set_verbose :: GuestfsH -> Bool -> IO ()
+set_verbose h verbose = do
+  r <- withForeignPtr h (\p -> c_set_verbose p (fromBool verbose))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_get_state" c_get_state
+  :: GuestfsP -> IO (CInt)
+
+get_state :: GuestfsH -> IO (Int)
+get_state h = do
+  r <- withForeignPtr h (\p -> c_get_state p)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_set_busy" c_set_busy
   :: GuestfsP -> IO (CInt)
 
@@ -289,6 +434,30 @@ end_busy h = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_set_memsize" c_set_memsize
+  :: GuestfsP -> CInt -> IO (CInt)
+
+set_memsize :: GuestfsH -> Int -> IO ()
+set_memsize h memsize = do
+  r <- withForeignPtr h (\p -> c_set_memsize p (fromIntegral memsize))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_get_memsize" c_get_memsize
+  :: GuestfsP -> IO (CInt)
+
+get_memsize :: GuestfsH -> IO (Int)
+get_memsize h = do
+  r <- withForeignPtr h (\p -> c_get_memsize p)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_mount" c_mount
   :: GuestfsP -> CString -> CString -> IO (CInt)
 
@@ -325,6 +494,18 @@ touch h path = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_aug_init" c_aug_init
+  :: GuestfsP -> CString -> CInt -> IO (CInt)
+
+aug_init :: GuestfsH -> String -> Int -> IO ()
+aug_init h root flags = do
+  r <- withCString root $ \root -> withForeignPtr h (\p -> c_aug_init p root (fromIntegral flags))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_aug_close" c_aug_close
   :: GuestfsP -> IO (CInt)
 
@@ -337,6 +518,18 @@ aug_close h = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_aug_defvar" c_aug_defvar
+  :: GuestfsP -> CString -> CString -> IO (CInt)
+
+aug_defvar :: GuestfsH -> String -> Maybe String -> IO (Int)
+aug_defvar h name expr = do
+  r <- withCString name $ \name -> maybeWith withCString expr $ \expr -> withForeignPtr h (\p -> c_aug_defvar p name expr)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_aug_set" c_aug_set
   :: GuestfsP -> CString -> CString -> IO (CInt)
 
@@ -349,6 +542,30 @@ aug_set h path val = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_aug_insert" c_aug_insert
+  :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
+
+aug_insert :: GuestfsH -> String -> String -> Bool -> IO ()
+aug_insert h path label before = do
+  r <- withCString path $ \path -> withCString label $ \label -> withForeignPtr h (\p -> c_aug_insert p path label (fromBool before))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_aug_rm" c_aug_rm
+  :: GuestfsP -> CString -> IO (CInt)
+
+aug_rm :: GuestfsH -> String -> IO (Int)
+aug_rm h path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_aug_rm p path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_aug_mv" c_aug_mv
   :: GuestfsP -> CString -> CString -> IO (CInt)
 
@@ -445,6 +662,30 @@ mkdir_p h path = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_chmod" c_chmod
+  :: GuestfsP -> CInt -> CString -> IO (CInt)
+
+chmod :: GuestfsH -> Int -> String -> IO ()
+chmod h mode path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_chmod p (fromIntegral mode) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_chown" c_chown
+  :: GuestfsP -> CInt -> CInt -> CString -> IO (CInt)
+
+chown :: GuestfsH -> Int -> Int -> String -> IO ()
+chown h owner group path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_chown p (fromIntegral owner) (fromIntegral group) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_pvcreate" c_pvcreate
   :: GuestfsP -> CString -> IO (CInt)
 
@@ -469,6 +710,18 @@ vgcreate h volgroup physvols = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_lvcreate" c_lvcreate
+  :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
+
+lvcreate :: GuestfsH -> String -> String -> Int -> IO ()
+lvcreate h logvol volgroup mbytes = do
+  r <- withCString logvol $ \logvol -> withCString volgroup $ \volgroup -> withForeignPtr h (\p -> c_lvcreate p logvol volgroup (fromIntegral mbytes))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_mkfs" c_mkfs
   :: GuestfsP -> CString -> CString -> IO (CInt)
 
@@ -481,6 +734,30 @@ mkfs h fstype device = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_sfdisk" c_sfdisk
+  :: GuestfsP -> CString -> CInt -> CInt -> CInt -> Ptr CString -> IO (CInt)
+
+sfdisk :: GuestfsH -> String -> Int -> Int -> Int -> [String] -> IO ()
+sfdisk h device cyls heads sectors lines = do
+  r <- withCString device $ \device -> withMany withCString lines $ \lines -> withArray0 nullPtr lines $ \lines -> withForeignPtr h (\p -> c_sfdisk p device (fromIntegral cyls) (fromIntegral heads) (fromIntegral sectors) lines)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_write_file" c_write_file
+  :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
+
+write_file :: GuestfsH -> String -> String -> Int -> IO ()
+write_file h path content size = do
+  r <- withCString path $ \path -> withCString content $ \content -> withForeignPtr h (\p -> c_write_file p path content (fromIntegral size))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_umount" c_umount
   :: GuestfsP -> CString -> IO (CInt)
 
@@ -541,6 +818,66 @@ blockdev_setrw h device = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_blockdev_getss" c_blockdev_getss
+  :: GuestfsP -> CString -> IO (CInt)
+
+blockdev_getss :: GuestfsH -> String -> IO (Int)
+blockdev_getss h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getss p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_blockdev_getbsz" c_blockdev_getbsz
+  :: GuestfsP -> CString -> IO (CInt)
+
+blockdev_getbsz :: GuestfsH -> String -> IO (Int)
+blockdev_getbsz h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getbsz p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_blockdev_setbsz" c_blockdev_setbsz
+  :: GuestfsP -> CString -> CInt -> IO (CInt)
+
+blockdev_setbsz :: GuestfsH -> String -> Int -> IO ()
+blockdev_setbsz h device blocksize = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_setbsz p device (fromIntegral blocksize))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_blockdev_getsz" c_blockdev_getsz
+  :: GuestfsP -> CString -> IO (Int64)
+
+blockdev_getsz :: GuestfsH -> String -> IO (Integer)
+blockdev_getsz h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getsz p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_blockdev_getsize64" c_blockdev_getsize64
+  :: GuestfsP -> CString -> IO (Int64)
+
+blockdev_getsize64 :: GuestfsH -> String -> IO (Integer)
+blockdev_getsize64 h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getsize64 p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_blockdev_flushbufs" c_blockdev_flushbufs
   :: GuestfsP -> CString -> IO (CInt)
 
@@ -733,6 +1070,18 @@ set_e2uuid h device uuid = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_fsck" c_fsck
+  :: GuestfsP -> CString -> CString -> IO (CInt)
+
+fsck :: GuestfsH -> String -> String -> IO (Int)
+fsck h fstype device = do
+  r <- withCString fstype $ \fstype -> withCString device $ \device -> withForeignPtr h (\p -> c_fsck p fstype device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
 foreign import ccall unsafe "guestfs_zero" c_zero
   :: GuestfsP -> CString -> IO (CInt)
 
@@ -793,6 +1142,18 @@ mv h src dest = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_drop_caches" c_drop_caches
+  :: GuestfsP -> CInt -> IO (CInt)
+
+drop_caches :: GuestfsH -> Int -> IO ()
+drop_caches h whattodrop = do
+  r <- withForeignPtr h (\p -> c_drop_caches p (fromIntegral whattodrop))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_ping_daemon" c_ping_daemon
   :: GuestfsP -> IO (CInt)
 
@@ -829,6 +1190,54 @@ pvresize h device = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_sfdisk_N" c_sfdisk_N
+  :: GuestfsP -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO (CInt)
+
+sfdisk_N :: GuestfsH -> String -> Int -> Int -> Int -> Int -> String -> IO ()
+sfdisk_N h device partnum cyls heads sectors line = do
+  r <- withCString device $ \device -> withCString line $ \line -> withForeignPtr h (\p -> c_sfdisk_N p device (fromIntegral partnum) (fromIntegral cyls) (fromIntegral heads) (fromIntegral sectors) line)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_vg_activate_all" c_vg_activate_all
+  :: GuestfsP -> CInt -> IO (CInt)
+
+vg_activate_all :: GuestfsH -> Bool -> IO ()
+vg_activate_all h activate = do
+  r <- withForeignPtr h (\p -> c_vg_activate_all p (fromBool activate))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_vg_activate" c_vg_activate
+  :: GuestfsP -> CInt -> Ptr CString -> IO (CInt)
+
+vg_activate :: GuestfsH -> Bool -> [String] -> IO ()
+vg_activate h activate volgroups = do
+  r <- withMany withCString volgroups $ \volgroups -> withArray0 nullPtr volgroups $ \volgroups -> withForeignPtr h (\p -> c_vg_activate p (fromBool activate) volgroups)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_lvresize" c_lvresize
+  :: GuestfsP -> CString -> CInt -> IO (CInt)
+
+lvresize :: GuestfsH -> String -> Int -> IO ()
+lvresize h device mbytes = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_lvresize p device (fromIntegral mbytes))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
 foreign import ccall unsafe "guestfs_resize2fs" c_resize2fs
   :: GuestfsP -> CString -> IO (CInt)
 
@@ -853,3 +1262,219 @@ e2fsck_f h device = do
       fail err
     else return ()
 
+foreign import ccall unsafe "guestfs_sleep" c_sleep
+  :: GuestfsP -> CInt -> IO (CInt)
+
+sleep :: GuestfsH -> Int -> IO ()
+sleep h secs = do
+  r <- withForeignPtr h (\p -> c_sleep p (fromIntegral secs))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_ntfs_3g_probe" c_ntfs_3g_probe
+  :: GuestfsP -> CInt -> CString -> IO (CInt)
+
+ntfs_3g_probe :: GuestfsH -> Bool -> String -> IO (Int)
+ntfs_3g_probe h rw device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_ntfs_3g_probe p (fromBool rw) device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_scrub_device" c_scrub_device
+  :: GuestfsP -> CString -> IO (CInt)
+
+scrub_device :: GuestfsH -> String -> IO ()
+scrub_device h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_scrub_device p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_scrub_file" c_scrub_file
+  :: GuestfsP -> CString -> IO (CInt)
+
+scrub_file :: GuestfsH -> String -> IO ()
+scrub_file h file = do
+  r <- withCString file $ \file -> withForeignPtr h (\p -> c_scrub_file p file)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_scrub_freespace" c_scrub_freespace
+  :: GuestfsP -> CString -> IO (CInt)
+
+scrub_freespace :: GuestfsH -> String -> IO ()
+scrub_freespace h dir = do
+  r <- withCString dir $ \dir -> withForeignPtr h (\p -> c_scrub_freespace p dir)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_wc_l" c_wc_l
+  :: GuestfsP -> CString -> IO (CInt)
+
+wc_l :: GuestfsH -> String -> IO (Int)
+wc_l h path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_l p path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_wc_w" c_wc_w
+  :: GuestfsP -> CString -> IO (CInt)
+
+wc_w :: GuestfsH -> String -> IO (Int)
+wc_w h path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_w p path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_wc_c" c_wc_c
+  :: GuestfsP -> CString -> IO (CInt)
+
+wc_c :: GuestfsH -> String -> IO (Int)
+wc_c h path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_c p path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_du" c_du
+  :: GuestfsP -> CString -> IO (Int64)
+
+du :: GuestfsH -> String -> IO (Integer)
+du h path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_du p path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+
+foreign import ccall unsafe "guestfs_mount_loop" c_mount_loop
+  :: GuestfsP -> CString -> CString -> IO (CInt)
+
+mount_loop :: GuestfsH -> String -> String -> IO ()
+mount_loop h file mountpoint = do
+  r <- withCString file $ \file -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount_loop p file mountpoint)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mkswap" c_mkswap
+  :: GuestfsP -> CString -> IO (CInt)
+
+mkswap :: GuestfsH -> String -> IO ()
+mkswap h device = do
+  r <- withCString device $ \device -> withForeignPtr h (\p -> c_mkswap p device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mkswap_L" c_mkswap_L
+  :: GuestfsP -> CString -> CString -> IO (CInt)
+
+mkswap_L :: GuestfsH -> String -> String -> IO ()
+mkswap_L h label device = do
+  r <- withCString label $ \label -> withCString device $ \device -> withForeignPtr h (\p -> c_mkswap_L p label device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mkswap_U" c_mkswap_U
+  :: GuestfsP -> CString -> CString -> IO (CInt)
+
+mkswap_U :: GuestfsH -> String -> String -> IO ()
+mkswap_U h uuid device = do
+  r <- withCString uuid $ \uuid -> withCString device $ \device -> withForeignPtr h (\p -> c_mkswap_U p uuid device)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mknod" c_mknod
+  :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
+
+mknod :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
+mknod h mode devmajor devminor path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mkfifo" c_mkfifo
+  :: GuestfsP -> CInt -> CString -> IO (CInt)
+
+mkfifo :: GuestfsH -> Int -> String -> IO ()
+mkfifo h mode path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_mkfifo p (fromIntegral mode) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mknod_b" c_mknod_b
+  :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
+
+mknod_b :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
+mknod_b h mode devmajor devminor path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod_b p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_mknod_c" c_mknod_c
+  :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
+
+mknod_c :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
+mknod_c h mode devmajor devminor path = do
+  r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod_c p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return ()
+
+foreign import ccall unsafe "guestfs_umask" c_umask
+  :: GuestfsP -> CInt -> IO (CInt)
+
+umask :: GuestfsH -> Int -> IO (Int)
+umask h mask = do
+  r <- withForeignPtr h (\p -> c_umask p (fromIntegral mask))
+  if (r == -1)
+    then do
+      err <- last_error h
+      fail err
+    else return (fromIntegral r)
+