X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=haskell%2FGuestfs.hs;h=837065146a7de6cd08cfccc3897c315f7559e3ce;hb=896079e29b4d49c6c18ac3316a94bfbe2f307648;hp=adf416f1e591a32dfd6255af37570c79c9697df6;hpb=da8ddb2745c3d53c36e3ad7f09836a4c27a4d3e6;p=libguestfs.git diff --git a/haskell/Guestfs.hs b/haskell/Guestfs.hs index adf416f..8370651 100644 --- a/haskell/Guestfs.hs +++ b/haskell/Guestfs.hs @@ -45,6 +45,8 @@ module Guestfs ( set_busy, set_ready, end_busy, + set_memsize, + get_memsize, mount, sync, touch, @@ -124,7 +126,12 @@ module Guestfs ( mount_loop, mkswap, mkswap_L, - mkswap_U + mkswap_U, + mknod, + mkfifo, + mknod_b, + mknod_c, + umask ) where import Foreign import Foreign.C @@ -427,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) @@ -1387,3 +1418,63 @@ mkswap_U h uuid device = do 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) +