X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=haskell%2FGuestfs.hs;h=837065146a7de6cd08cfccc3897c315f7559e3ce;hb=896079e29b4d49c6c18ac3316a94bfbe2f307648;hp=4a0021e98e5183a1e95eb52d699069e9cbba9ed2;hpb=ec34c2bfbfcc53eadf823536dc182710e19b48b2;p=libguestfs.git diff --git a/haskell/Guestfs.hs b/haskell/Guestfs.hs index 4a0021e..8370651 100644 --- a/haskell/Guestfs.hs +++ b/haskell/Guestfs.hs @@ -24,6 +24,11 @@ module Guestfs ( create, + test0, + test0rint, + test0rinterr, + test0rint64, + test0rint64err, launch, wait_ready, kill_subprocess, @@ -34,15 +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, @@ -64,7 +77,11 @@ module Guestfs ( lvm_remove_all, blockdev_setro, blockdev_setrw, + blockdev_getss, + blockdev_getbsz, blockdev_setbsz, + blockdev_getsz, + blockdev_getsize64, blockdev_flushbufs, blockdev_rereadpt, upload, @@ -81,6 +98,7 @@ module Guestfs ( pvremove, set_e2label, set_e2uuid, + fsck, zero, grub_install, cp, @@ -91,13 +109,29 @@ module Guestfs ( zerofree, pvresize, sfdisk_N, + vg_activate_all, + vg_activate, lvresize, resize2fs, e2fsck_f, sleep, + ntfs_3g_probe, scrub_device, scrub_file, - scrub_freespace + 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 @@ -148,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) @@ -268,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) @@ -304,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) @@ -364,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) @@ -376,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) @@ -628,6 +818,30 @@ 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) @@ -640,6 +854,30 @@ blockdev_setbsz h device blocksize = do 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) @@ -832,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) @@ -944,8 +1194,32 @@ 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 n cyls heads sectors line = do - r <- withCString device $ \device -> withCString line $ \line -> withForeignPtr h (\p -> c_sfdisk_N p device (fromIntegral n) (fromIntegral cyls) (fromIntegral heads) (fromIntegral sectors) line) +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 @@ -1000,6 +1274,18 @@ sleep h secs = do 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) @@ -1036,3 +1322,159 @@ scrub_freespace h dir = do 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) +