New commands: mknod, mkfifo, mknod_b, mknod_c and umask.
[libguestfs.git] / haskell / Guestfs.hs
index 9eefda1..3148450 100644 (file)
@@ -45,6 +45,8 @@ module Guestfs (
   set_busy,
   set_ready,
   end_busy,
+  set_memsize,
+  get_memsize,
   mount,
   sync,
   touch,
@@ -120,7 +122,11 @@ module Guestfs (
   wc_l,
   wc_w,
   wc_c,
-  du
+  du,
+  mount_loop,
+  mkswap,
+  mkswap_L,
+  mkswap_U
   ) where
 import Foreign
 import Foreign.C
@@ -423,6 +429,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)
 
@@ -1335,3 +1365,51 @@ du h path = do
       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 ()
+