X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=haskell%2FGuestfs.hs;h=ddbad4696f44c1974567e3c64cdbdfcfc855bbb9;hb=af0cfda7e4942c14c9db7304962f8471ccad170f;hp=aedf3b5369280e4738cd12feb09bc3f182c98327;hpb=d43dac69483e8ec62e8356d93f761684ce2f5cc8;p=libguestfs.git diff --git a/haskell/Guestfs.hs b/haskell/Guestfs.hs index aedf3b5..ddbad46 100644 --- a/haskell/Guestfs.hs +++ b/haskell/Guestfs.hs @@ -29,9 +29,11 @@ module Guestfs ( kill_subprocess, add_drive, add_cdrom, + add_drive_ro, config, set_qemu, set_path, + set_append, set_busy, set_ready, end_busy, @@ -77,7 +79,14 @@ module Guestfs ( cp, cp_a, mv, - ping_daemon + ping_daemon, + zerofree, + pvresize, + resize2fs, + e2fsck_f, + scrub_device, + scrub_file, + scrub_freespace ) where import Foreign import Foreign.C @@ -187,6 +196,18 @@ add_cdrom h filename = do fail err else return () +foreign import ccall unsafe "guestfs_add_drive_ro" c_add_drive_ro + :: GuestfsP -> CString -> IO (CInt) + +add_drive_ro :: GuestfsH -> String -> IO () +add_drive_ro h filename = do + r <- withCString filename $ \filename -> withForeignPtr h (\p -> c_add_drive_ro p filename) + if (r == -1) + then do + err <- last_error h + fail err + else return () + foreign import ccall unsafe "guestfs_config" c_config :: GuestfsP -> CString -> CString -> IO (CInt) @@ -223,6 +244,18 @@ set_path h path = do fail err else return () +foreign import ccall unsafe "guestfs_set_append" c_set_append + :: GuestfsP -> CString -> IO (CInt) + +set_append :: GuestfsH -> String -> IO () +set_append h append = do + r <- withCString append $ \append -> withForeignPtr h (\p -> c_set_append p append) + if (r == -1) + then do + err <- last_error h + fail err + else return () + foreign import ccall unsafe "guestfs_set_busy" c_set_busy :: GuestfsP -> IO (CInt) @@ -775,3 +808,87 @@ ping_daemon h = do fail err else return () +foreign import ccall unsafe "guestfs_zerofree" c_zerofree + :: GuestfsP -> CString -> IO (CInt) + +zerofree :: GuestfsH -> String -> IO () +zerofree h device = do + r <- withCString device $ \device -> withForeignPtr h (\p -> c_zerofree p device) + if (r == -1) + then do + err <- last_error h + fail err + else return () + +foreign import ccall unsafe "guestfs_pvresize" c_pvresize + :: GuestfsP -> CString -> IO (CInt) + +pvresize :: GuestfsH -> String -> IO () +pvresize h device = do + r <- withCString device $ \device -> withForeignPtr h (\p -> c_pvresize p device) + 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) + +resize2fs :: GuestfsH -> String -> IO () +resize2fs h device = do + r <- withCString device $ \device -> withForeignPtr h (\p -> c_resize2fs p device) + if (r == -1) + then do + err <- last_error h + fail err + else return () + +foreign import ccall unsafe "guestfs_e2fsck_f" c_e2fsck_f + :: GuestfsP -> CString -> IO (CInt) + +e2fsck_f :: GuestfsH -> String -> IO () +e2fsck_f h device = do + r <- withCString device $ \device -> withForeignPtr h (\p -> c_e2fsck_f p device) + if (r == -1) + then do + err <- last_error h + fail err + else return () + +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 () +