X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=haskell%2FGuestfs.hs;h=210274efd5d0b045f7cf050598401f62fe8ae3fd;hb=28e2bceefeedbef82dcc24e60e8a22da0960354a;hp=170f0403736fbac97be057663d54b17129650696;hpb=5cd39c83e23eb300d1bdfa806902a31b409ff420;p=libguestfs.git diff --git a/haskell/Guestfs.hs b/haskell/Guestfs.hs index 170f040..210274e 100644 --- a/haskell/Guestfs.hs +++ b/haskell/Guestfs.hs @@ -29,6 +29,7 @@ module Guestfs ( kill_subprocess, add_drive, add_cdrom, + add_drive_ro, config, set_qemu, set_path, @@ -80,7 +81,9 @@ module Guestfs ( mv, ping_daemon, zerofree, - pvresize + pvresize, + resize2fs, + e2fsck_f ) where import Foreign import Foreign.C @@ -190,6 +193,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) @@ -814,3 +829,27 @@ pvresize h device = do 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 () +