New commands: mknod, mkfifo, mknod_b, mknod_c and umask.
[libguestfs.git] / haskell / Guestfs.hs
index 32e7aed..3148450 100644 (file)
@@ -45,6 +45,8 @@ module Guestfs (
   set_busy,
   set_ready,
   end_busy,
+  set_memsize,
+  get_memsize,
   mount,
   sync,
   touch,
@@ -121,7 +123,10 @@ module Guestfs (
   wc_w,
   wc_c,
   du,
-  mount_loop
+  mount_loop,
+  mkswap,
+  mkswap_L,
+  mkswap_U
   ) where
 import Foreign
 import Foreign.C
@@ -424,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)
 
@@ -1348,3 +1377,39 @@ mount_loop h file mountpoint = do
       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 ()
+