Generated code for mknod, mkfifo, mknod_b, mknod_c, umask.
[libguestfs.git] / haskell / Guestfs.hs
1 {- libguestfs generated file
2    WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
3    ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
4   
5    Copyright (C) 2009 Red Hat Inc.
6   
7    This library is free software; you can redistribute it and/or
8    modify it under the terms of the GNU Lesser General Public
9    License as published by the Free Software Foundation; either
10    version 2 of the License, or (at your option) any later version.
11   
12    This library is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    Lesser General Public License for more details.
16   
17    You should have received a copy of the GNU Lesser General Public
18    License along with this library; if not, write to the Free Software
19    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 -}
21
22 {-# INCLUDE <guestfs.h> #-}
23 {-# LANGUAGE ForeignFunctionInterface #-}
24
25 module Guestfs (
26   create,
27   test0,
28   test0rint,
29   test0rinterr,
30   test0rint64,
31   test0rint64err,
32   launch,
33   wait_ready,
34   kill_subprocess,
35   add_drive,
36   add_cdrom,
37   add_drive_ro,
38   config,
39   set_qemu,
40   set_path,
41   set_append,
42   set_autosync,
43   set_verbose,
44   get_state,
45   set_busy,
46   set_ready,
47   end_busy,
48   set_memsize,
49   get_memsize,
50   mount,
51   sync,
52   touch,
53   aug_init,
54   aug_close,
55   aug_defvar,
56   aug_set,
57   aug_insert,
58   aug_rm,
59   aug_mv,
60   aug_save,
61   aug_load,
62   rm,
63   rmdir,
64   rm_rf,
65   mkdir,
66   mkdir_p,
67   chmod,
68   chown,
69   pvcreate,
70   vgcreate,
71   lvcreate,
72   mkfs,
73   sfdisk,
74   write_file,
75   umount,
76   umount_all,
77   lvm_remove_all,
78   blockdev_setro,
79   blockdev_setrw,
80   blockdev_getss,
81   blockdev_getbsz,
82   blockdev_setbsz,
83   blockdev_getsz,
84   blockdev_getsize64,
85   blockdev_flushbufs,
86   blockdev_rereadpt,
87   upload,
88   download,
89   tar_in,
90   tar_out,
91   tgz_in,
92   tgz_out,
93   mount_ro,
94   mount_options,
95   mount_vfs,
96   lvremove,
97   vgremove,
98   pvremove,
99   set_e2label,
100   set_e2uuid,
101   fsck,
102   zero,
103   grub_install,
104   cp,
105   cp_a,
106   mv,
107   drop_caches,
108   ping_daemon,
109   zerofree,
110   pvresize,
111   sfdisk_N,
112   vg_activate_all,
113   vg_activate,
114   lvresize,
115   resize2fs,
116   e2fsck_f,
117   sleep,
118   ntfs_3g_probe,
119   scrub_device,
120   scrub_file,
121   scrub_freespace,
122   wc_l,
123   wc_w,
124   wc_c,
125   du,
126   mount_loop,
127   mkswap,
128   mkswap_L,
129   mkswap_U,
130   mknod,
131   mkfifo,
132   mknod_b,
133   mknod_c,
134   umask
135   ) where
136 import Foreign
137 import Foreign.C
138 import Foreign.C.Types
139 import IO
140 import Control.Exception
141 import Data.Typeable
142
143 data GuestfsS = GuestfsS            -- represents the opaque C struct
144 type GuestfsP = Ptr GuestfsS        -- guestfs_h *
145 type GuestfsH = ForeignPtr GuestfsS -- guestfs_h * with attached finalizer
146
147 -- XXX define properly later XXX
148 data PV = PV
149 data VG = VG
150 data LV = LV
151 data IntBool = IntBool
152 data Stat = Stat
153 data StatVFS = StatVFS
154 data Hashtable = Hashtable
155
156 foreign import ccall unsafe "guestfs_create" c_create
157   :: IO GuestfsP
158 foreign import ccall unsafe "&guestfs_close" c_close
159   :: FunPtr (GuestfsP -> IO ())
160 foreign import ccall unsafe "guestfs_set_error_handler" c_set_error_handler
161   :: GuestfsP -> Ptr CInt -> Ptr CInt -> IO ()
162
163 create :: IO GuestfsH
164 create = do
165   p <- c_create
166   c_set_error_handler p nullPtr nullPtr
167   h <- newForeignPtr c_close p
168   return h
169
170 foreign import ccall unsafe "guestfs_last_error" c_last_error
171   :: GuestfsP -> IO CString
172
173 -- last_error :: GuestfsH -> IO (Maybe String)
174 -- last_error h = do
175 --   str <- withForeignPtr h (\p -> c_last_error p)
176 --   maybePeek peekCString str
177
178 last_error :: GuestfsH -> IO (String)
179 last_error h = do
180   str <- withForeignPtr h (\p -> c_last_error p)
181   if (str == nullPtr)
182     then return "no error"
183     else peekCString str
184
185 foreign import ccall unsafe "guestfs_test0" c_test0
186   :: GuestfsP -> CString -> CString -> Ptr CString -> CInt -> CInt -> CString -> CString -> IO (CInt)
187
188 test0 :: GuestfsH -> String -> Maybe String -> [String] -> Bool -> Int -> String -> String -> IO ()
189 test0 h str optstr strlist b integer filein fileout = do
190   r <- withCString str $ \str -> maybeWith withCString optstr $ \optstr -> withMany withCString strlist $ \strlist -> withArray0 nullPtr strlist $ \strlist -> withCString filein $ \filein -> withCString fileout $ \fileout -> withForeignPtr h (\p -> c_test0 p str optstr strlist (fromBool b) (fromIntegral integer) filein fileout)
191   if (r == -1)
192     then do
193       err <- last_error h
194       fail err
195     else return ()
196
197 foreign import ccall unsafe "guestfs_test0rint" c_test0rint
198   :: GuestfsP -> CString -> IO (CInt)
199
200 test0rint :: GuestfsH -> String -> IO (Int)
201 test0rint h val = do
202   r <- withCString val $ \val -> withForeignPtr h (\p -> c_test0rint p val)
203   if (r == -1)
204     then do
205       err <- last_error h
206       fail err
207     else return (fromIntegral r)
208
209 foreign import ccall unsafe "guestfs_test0rinterr" c_test0rinterr
210   :: GuestfsP -> IO (CInt)
211
212 test0rinterr :: GuestfsH -> IO (Int)
213 test0rinterr h = do
214   r <- withForeignPtr h (\p -> c_test0rinterr p)
215   if (r == -1)
216     then do
217       err <- last_error h
218       fail err
219     else return (fromIntegral r)
220
221 foreign import ccall unsafe "guestfs_test0rint64" c_test0rint64
222   :: GuestfsP -> CString -> IO (Int64)
223
224 test0rint64 :: GuestfsH -> String -> IO (Integer)
225 test0rint64 h val = do
226   r <- withCString val $ \val -> withForeignPtr h (\p -> c_test0rint64 p val)
227   if (r == -1)
228     then do
229       err <- last_error h
230       fail err
231     else return (fromIntegral r)
232
233 foreign import ccall unsafe "guestfs_test0rint64err" c_test0rint64err
234   :: GuestfsP -> IO (Int64)
235
236 test0rint64err :: GuestfsH -> IO (Integer)
237 test0rint64err h = do
238   r <- withForeignPtr h (\p -> c_test0rint64err p)
239   if (r == -1)
240     then do
241       err <- last_error h
242       fail err
243     else return (fromIntegral r)
244
245 foreign import ccall unsafe "guestfs_launch" c_launch
246   :: GuestfsP -> IO (CInt)
247
248 launch :: GuestfsH -> IO ()
249 launch h = do
250   r <- withForeignPtr h (\p -> c_launch p)
251   if (r == -1)
252     then do
253       err <- last_error h
254       fail err
255     else return ()
256
257 foreign import ccall unsafe "guestfs_wait_ready" c_wait_ready
258   :: GuestfsP -> IO (CInt)
259
260 wait_ready :: GuestfsH -> IO ()
261 wait_ready h = do
262   r <- withForeignPtr h (\p -> c_wait_ready p)
263   if (r == -1)
264     then do
265       err <- last_error h
266       fail err
267     else return ()
268
269 foreign import ccall unsafe "guestfs_kill_subprocess" c_kill_subprocess
270   :: GuestfsP -> IO (CInt)
271
272 kill_subprocess :: GuestfsH -> IO ()
273 kill_subprocess h = do
274   r <- withForeignPtr h (\p -> c_kill_subprocess p)
275   if (r == -1)
276     then do
277       err <- last_error h
278       fail err
279     else return ()
280
281 foreign import ccall unsafe "guestfs_add_drive" c_add_drive
282   :: GuestfsP -> CString -> IO (CInt)
283
284 add_drive :: GuestfsH -> String -> IO ()
285 add_drive h filename = do
286   r <- withCString filename $ \filename -> withForeignPtr h (\p -> c_add_drive p filename)
287   if (r == -1)
288     then do
289       err <- last_error h
290       fail err
291     else return ()
292
293 foreign import ccall unsafe "guestfs_add_cdrom" c_add_cdrom
294   :: GuestfsP -> CString -> IO (CInt)
295
296 add_cdrom :: GuestfsH -> String -> IO ()
297 add_cdrom h filename = do
298   r <- withCString filename $ \filename -> withForeignPtr h (\p -> c_add_cdrom p filename)
299   if (r == -1)
300     then do
301       err <- last_error h
302       fail err
303     else return ()
304
305 foreign import ccall unsafe "guestfs_add_drive_ro" c_add_drive_ro
306   :: GuestfsP -> CString -> IO (CInt)
307
308 add_drive_ro :: GuestfsH -> String -> IO ()
309 add_drive_ro h filename = do
310   r <- withCString filename $ \filename -> withForeignPtr h (\p -> c_add_drive_ro p filename)
311   if (r == -1)
312     then do
313       err <- last_error h
314       fail err
315     else return ()
316
317 foreign import ccall unsafe "guestfs_config" c_config
318   :: GuestfsP -> CString -> CString -> IO (CInt)
319
320 config :: GuestfsH -> String -> Maybe String -> IO ()
321 config h qemuparam qemuvalue = do
322   r <- withCString qemuparam $ \qemuparam -> maybeWith withCString qemuvalue $ \qemuvalue -> withForeignPtr h (\p -> c_config p qemuparam qemuvalue)
323   if (r == -1)
324     then do
325       err <- last_error h
326       fail err
327     else return ()
328
329 foreign import ccall unsafe "guestfs_set_qemu" c_set_qemu
330   :: GuestfsP -> CString -> IO (CInt)
331
332 set_qemu :: GuestfsH -> String -> IO ()
333 set_qemu h qemu = do
334   r <- withCString qemu $ \qemu -> withForeignPtr h (\p -> c_set_qemu p qemu)
335   if (r == -1)
336     then do
337       err <- last_error h
338       fail err
339     else return ()
340
341 foreign import ccall unsafe "guestfs_set_path" c_set_path
342   :: GuestfsP -> CString -> IO (CInt)
343
344 set_path :: GuestfsH -> String -> IO ()
345 set_path h path = do
346   r <- withCString path $ \path -> withForeignPtr h (\p -> c_set_path p path)
347   if (r == -1)
348     then do
349       err <- last_error h
350       fail err
351     else return ()
352
353 foreign import ccall unsafe "guestfs_set_append" c_set_append
354   :: GuestfsP -> CString -> IO (CInt)
355
356 set_append :: GuestfsH -> String -> IO ()
357 set_append h append = do
358   r <- withCString append $ \append -> withForeignPtr h (\p -> c_set_append p append)
359   if (r == -1)
360     then do
361       err <- last_error h
362       fail err
363     else return ()
364
365 foreign import ccall unsafe "guestfs_set_autosync" c_set_autosync
366   :: GuestfsP -> CInt -> IO (CInt)
367
368 set_autosync :: GuestfsH -> Bool -> IO ()
369 set_autosync h autosync = do
370   r <- withForeignPtr h (\p -> c_set_autosync p (fromBool autosync))
371   if (r == -1)
372     then do
373       err <- last_error h
374       fail err
375     else return ()
376
377 foreign import ccall unsafe "guestfs_set_verbose" c_set_verbose
378   :: GuestfsP -> CInt -> IO (CInt)
379
380 set_verbose :: GuestfsH -> Bool -> IO ()
381 set_verbose h verbose = do
382   r <- withForeignPtr h (\p -> c_set_verbose p (fromBool verbose))
383   if (r == -1)
384     then do
385       err <- last_error h
386       fail err
387     else return ()
388
389 foreign import ccall unsafe "guestfs_get_state" c_get_state
390   :: GuestfsP -> IO (CInt)
391
392 get_state :: GuestfsH -> IO (Int)
393 get_state h = do
394   r <- withForeignPtr h (\p -> c_get_state p)
395   if (r == -1)
396     then do
397       err <- last_error h
398       fail err
399     else return (fromIntegral r)
400
401 foreign import ccall unsafe "guestfs_set_busy" c_set_busy
402   :: GuestfsP -> IO (CInt)
403
404 set_busy :: GuestfsH -> IO ()
405 set_busy h = do
406   r <- withForeignPtr h (\p -> c_set_busy p)
407   if (r == -1)
408     then do
409       err <- last_error h
410       fail err
411     else return ()
412
413 foreign import ccall unsafe "guestfs_set_ready" c_set_ready
414   :: GuestfsP -> IO (CInt)
415
416 set_ready :: GuestfsH -> IO ()
417 set_ready h = do
418   r <- withForeignPtr h (\p -> c_set_ready p)
419   if (r == -1)
420     then do
421       err <- last_error h
422       fail err
423     else return ()
424
425 foreign import ccall unsafe "guestfs_end_busy" c_end_busy
426   :: GuestfsP -> IO (CInt)
427
428 end_busy :: GuestfsH -> IO ()
429 end_busy h = do
430   r <- withForeignPtr h (\p -> c_end_busy p)
431   if (r == -1)
432     then do
433       err <- last_error h
434       fail err
435     else return ()
436
437 foreign import ccall unsafe "guestfs_set_memsize" c_set_memsize
438   :: GuestfsP -> CInt -> IO (CInt)
439
440 set_memsize :: GuestfsH -> Int -> IO ()
441 set_memsize h memsize = do
442   r <- withForeignPtr h (\p -> c_set_memsize p (fromIntegral memsize))
443   if (r == -1)
444     then do
445       err <- last_error h
446       fail err
447     else return ()
448
449 foreign import ccall unsafe "guestfs_get_memsize" c_get_memsize
450   :: GuestfsP -> IO (CInt)
451
452 get_memsize :: GuestfsH -> IO (Int)
453 get_memsize h = do
454   r <- withForeignPtr h (\p -> c_get_memsize p)
455   if (r == -1)
456     then do
457       err <- last_error h
458       fail err
459     else return (fromIntegral r)
460
461 foreign import ccall unsafe "guestfs_mount" c_mount
462   :: GuestfsP -> CString -> CString -> IO (CInt)
463
464 mount :: GuestfsH -> String -> String -> IO ()
465 mount h device mountpoint = do
466   r <- withCString device $ \device -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount p device mountpoint)
467   if (r == -1)
468     then do
469       err <- last_error h
470       fail err
471     else return ()
472
473 foreign import ccall unsafe "guestfs_sync" c_sync
474   :: GuestfsP -> IO (CInt)
475
476 sync :: GuestfsH -> IO ()
477 sync h = do
478   r <- withForeignPtr h (\p -> c_sync p)
479   if (r == -1)
480     then do
481       err <- last_error h
482       fail err
483     else return ()
484
485 foreign import ccall unsafe "guestfs_touch" c_touch
486   :: GuestfsP -> CString -> IO (CInt)
487
488 touch :: GuestfsH -> String -> IO ()
489 touch h path = do
490   r <- withCString path $ \path -> withForeignPtr h (\p -> c_touch p path)
491   if (r == -1)
492     then do
493       err <- last_error h
494       fail err
495     else return ()
496
497 foreign import ccall unsafe "guestfs_aug_init" c_aug_init
498   :: GuestfsP -> CString -> CInt -> IO (CInt)
499
500 aug_init :: GuestfsH -> String -> Int -> IO ()
501 aug_init h root flags = do
502   r <- withCString root $ \root -> withForeignPtr h (\p -> c_aug_init p root (fromIntegral flags))
503   if (r == -1)
504     then do
505       err <- last_error h
506       fail err
507     else return ()
508
509 foreign import ccall unsafe "guestfs_aug_close" c_aug_close
510   :: GuestfsP -> IO (CInt)
511
512 aug_close :: GuestfsH -> IO ()
513 aug_close h = do
514   r <- withForeignPtr h (\p -> c_aug_close p)
515   if (r == -1)
516     then do
517       err <- last_error h
518       fail err
519     else return ()
520
521 foreign import ccall unsafe "guestfs_aug_defvar" c_aug_defvar
522   :: GuestfsP -> CString -> CString -> IO (CInt)
523
524 aug_defvar :: GuestfsH -> String -> Maybe String -> IO (Int)
525 aug_defvar h name expr = do
526   r <- withCString name $ \name -> maybeWith withCString expr $ \expr -> withForeignPtr h (\p -> c_aug_defvar p name expr)
527   if (r == -1)
528     then do
529       err <- last_error h
530       fail err
531     else return (fromIntegral r)
532
533 foreign import ccall unsafe "guestfs_aug_set" c_aug_set
534   :: GuestfsP -> CString -> CString -> IO (CInt)
535
536 aug_set :: GuestfsH -> String -> String -> IO ()
537 aug_set h path val = do
538   r <- withCString path $ \path -> withCString val $ \val -> withForeignPtr h (\p -> c_aug_set p path val)
539   if (r == -1)
540     then do
541       err <- last_error h
542       fail err
543     else return ()
544
545 foreign import ccall unsafe "guestfs_aug_insert" c_aug_insert
546   :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
547
548 aug_insert :: GuestfsH -> String -> String -> Bool -> IO ()
549 aug_insert h path label before = do
550   r <- withCString path $ \path -> withCString label $ \label -> withForeignPtr h (\p -> c_aug_insert p path label (fromBool before))
551   if (r == -1)
552     then do
553       err <- last_error h
554       fail err
555     else return ()
556
557 foreign import ccall unsafe "guestfs_aug_rm" c_aug_rm
558   :: GuestfsP -> CString -> IO (CInt)
559
560 aug_rm :: GuestfsH -> String -> IO (Int)
561 aug_rm h path = do
562   r <- withCString path $ \path -> withForeignPtr h (\p -> c_aug_rm p path)
563   if (r == -1)
564     then do
565       err <- last_error h
566       fail err
567     else return (fromIntegral r)
568
569 foreign import ccall unsafe "guestfs_aug_mv" c_aug_mv
570   :: GuestfsP -> CString -> CString -> IO (CInt)
571
572 aug_mv :: GuestfsH -> String -> String -> IO ()
573 aug_mv h src dest = do
574   r <- withCString src $ \src -> withCString dest $ \dest -> withForeignPtr h (\p -> c_aug_mv p src dest)
575   if (r == -1)
576     then do
577       err <- last_error h
578       fail err
579     else return ()
580
581 foreign import ccall unsafe "guestfs_aug_save" c_aug_save
582   :: GuestfsP -> IO (CInt)
583
584 aug_save :: GuestfsH -> IO ()
585 aug_save h = do
586   r <- withForeignPtr h (\p -> c_aug_save p)
587   if (r == -1)
588     then do
589       err <- last_error h
590       fail err
591     else return ()
592
593 foreign import ccall unsafe "guestfs_aug_load" c_aug_load
594   :: GuestfsP -> IO (CInt)
595
596 aug_load :: GuestfsH -> IO ()
597 aug_load h = do
598   r <- withForeignPtr h (\p -> c_aug_load p)
599   if (r == -1)
600     then do
601       err <- last_error h
602       fail err
603     else return ()
604
605 foreign import ccall unsafe "guestfs_rm" c_rm
606   :: GuestfsP -> CString -> IO (CInt)
607
608 rm :: GuestfsH -> String -> IO ()
609 rm h path = do
610   r <- withCString path $ \path -> withForeignPtr h (\p -> c_rm p path)
611   if (r == -1)
612     then do
613       err <- last_error h
614       fail err
615     else return ()
616
617 foreign import ccall unsafe "guestfs_rmdir" c_rmdir
618   :: GuestfsP -> CString -> IO (CInt)
619
620 rmdir :: GuestfsH -> String -> IO ()
621 rmdir h path = do
622   r <- withCString path $ \path -> withForeignPtr h (\p -> c_rmdir p path)
623   if (r == -1)
624     then do
625       err <- last_error h
626       fail err
627     else return ()
628
629 foreign import ccall unsafe "guestfs_rm_rf" c_rm_rf
630   :: GuestfsP -> CString -> IO (CInt)
631
632 rm_rf :: GuestfsH -> String -> IO ()
633 rm_rf h path = do
634   r <- withCString path $ \path -> withForeignPtr h (\p -> c_rm_rf p path)
635   if (r == -1)
636     then do
637       err <- last_error h
638       fail err
639     else return ()
640
641 foreign import ccall unsafe "guestfs_mkdir" c_mkdir
642   :: GuestfsP -> CString -> IO (CInt)
643
644 mkdir :: GuestfsH -> String -> IO ()
645 mkdir h path = do
646   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mkdir p path)
647   if (r == -1)
648     then do
649       err <- last_error h
650       fail err
651     else return ()
652
653 foreign import ccall unsafe "guestfs_mkdir_p" c_mkdir_p
654   :: GuestfsP -> CString -> IO (CInt)
655
656 mkdir_p :: GuestfsH -> String -> IO ()
657 mkdir_p h path = do
658   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mkdir_p p path)
659   if (r == -1)
660     then do
661       err <- last_error h
662       fail err
663     else return ()
664
665 foreign import ccall unsafe "guestfs_chmod" c_chmod
666   :: GuestfsP -> CInt -> CString -> IO (CInt)
667
668 chmod :: GuestfsH -> Int -> String -> IO ()
669 chmod h mode path = do
670   r <- withCString path $ \path -> withForeignPtr h (\p -> c_chmod p (fromIntegral mode) path)
671   if (r == -1)
672     then do
673       err <- last_error h
674       fail err
675     else return ()
676
677 foreign import ccall unsafe "guestfs_chown" c_chown
678   :: GuestfsP -> CInt -> CInt -> CString -> IO (CInt)
679
680 chown :: GuestfsH -> Int -> Int -> String -> IO ()
681 chown h owner group path = do
682   r <- withCString path $ \path -> withForeignPtr h (\p -> c_chown p (fromIntegral owner) (fromIntegral group) path)
683   if (r == -1)
684     then do
685       err <- last_error h
686       fail err
687     else return ()
688
689 foreign import ccall unsafe "guestfs_pvcreate" c_pvcreate
690   :: GuestfsP -> CString -> IO (CInt)
691
692 pvcreate :: GuestfsH -> String -> IO ()
693 pvcreate h device = do
694   r <- withCString device $ \device -> withForeignPtr h (\p -> c_pvcreate p device)
695   if (r == -1)
696     then do
697       err <- last_error h
698       fail err
699     else return ()
700
701 foreign import ccall unsafe "guestfs_vgcreate" c_vgcreate
702   :: GuestfsP -> CString -> Ptr CString -> IO (CInt)
703
704 vgcreate :: GuestfsH -> String -> [String] -> IO ()
705 vgcreate h volgroup physvols = do
706   r <- withCString volgroup $ \volgroup -> withMany withCString physvols $ \physvols -> withArray0 nullPtr physvols $ \physvols -> withForeignPtr h (\p -> c_vgcreate p volgroup physvols)
707   if (r == -1)
708     then do
709       err <- last_error h
710       fail err
711     else return ()
712
713 foreign import ccall unsafe "guestfs_lvcreate" c_lvcreate
714   :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
715
716 lvcreate :: GuestfsH -> String -> String -> Int -> IO ()
717 lvcreate h logvol volgroup mbytes = do
718   r <- withCString logvol $ \logvol -> withCString volgroup $ \volgroup -> withForeignPtr h (\p -> c_lvcreate p logvol volgroup (fromIntegral mbytes))
719   if (r == -1)
720     then do
721       err <- last_error h
722       fail err
723     else return ()
724
725 foreign import ccall unsafe "guestfs_mkfs" c_mkfs
726   :: GuestfsP -> CString -> CString -> IO (CInt)
727
728 mkfs :: GuestfsH -> String -> String -> IO ()
729 mkfs h fstype device = do
730   r <- withCString fstype $ \fstype -> withCString device $ \device -> withForeignPtr h (\p -> c_mkfs p fstype device)
731   if (r == -1)
732     then do
733       err <- last_error h
734       fail err
735     else return ()
736
737 foreign import ccall unsafe "guestfs_sfdisk" c_sfdisk
738   :: GuestfsP -> CString -> CInt -> CInt -> CInt -> Ptr CString -> IO (CInt)
739
740 sfdisk :: GuestfsH -> String -> Int -> Int -> Int -> [String] -> IO ()
741 sfdisk h device cyls heads sectors lines = do
742   r <- withCString device $ \device -> withMany withCString lines $ \lines -> withArray0 nullPtr lines $ \lines -> withForeignPtr h (\p -> c_sfdisk p device (fromIntegral cyls) (fromIntegral heads) (fromIntegral sectors) lines)
743   if (r == -1)
744     then do
745       err <- last_error h
746       fail err
747     else return ()
748
749 foreign import ccall unsafe "guestfs_write_file" c_write_file
750   :: GuestfsP -> CString -> CString -> CInt -> IO (CInt)
751
752 write_file :: GuestfsH -> String -> String -> Int -> IO ()
753 write_file h path content size = do
754   r <- withCString path $ \path -> withCString content $ \content -> withForeignPtr h (\p -> c_write_file p path content (fromIntegral size))
755   if (r == -1)
756     then do
757       err <- last_error h
758       fail err
759     else return ()
760
761 foreign import ccall unsafe "guestfs_umount" c_umount
762   :: GuestfsP -> CString -> IO (CInt)
763
764 umount :: GuestfsH -> String -> IO ()
765 umount h pathordevice = do
766   r <- withCString pathordevice $ \pathordevice -> withForeignPtr h (\p -> c_umount p pathordevice)
767   if (r == -1)
768     then do
769       err <- last_error h
770       fail err
771     else return ()
772
773 foreign import ccall unsafe "guestfs_umount_all" c_umount_all
774   :: GuestfsP -> IO (CInt)
775
776 umount_all :: GuestfsH -> IO ()
777 umount_all h = do
778   r <- withForeignPtr h (\p -> c_umount_all p)
779   if (r == -1)
780     then do
781       err <- last_error h
782       fail err
783     else return ()
784
785 foreign import ccall unsafe "guestfs_lvm_remove_all" c_lvm_remove_all
786   :: GuestfsP -> IO (CInt)
787
788 lvm_remove_all :: GuestfsH -> IO ()
789 lvm_remove_all h = do
790   r <- withForeignPtr h (\p -> c_lvm_remove_all p)
791   if (r == -1)
792     then do
793       err <- last_error h
794       fail err
795     else return ()
796
797 foreign import ccall unsafe "guestfs_blockdev_setro" c_blockdev_setro
798   :: GuestfsP -> CString -> IO (CInt)
799
800 blockdev_setro :: GuestfsH -> String -> IO ()
801 blockdev_setro h device = do
802   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_setro p device)
803   if (r == -1)
804     then do
805       err <- last_error h
806       fail err
807     else return ()
808
809 foreign import ccall unsafe "guestfs_blockdev_setrw" c_blockdev_setrw
810   :: GuestfsP -> CString -> IO (CInt)
811
812 blockdev_setrw :: GuestfsH -> String -> IO ()
813 blockdev_setrw h device = do
814   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_setrw p device)
815   if (r == -1)
816     then do
817       err <- last_error h
818       fail err
819     else return ()
820
821 foreign import ccall unsafe "guestfs_blockdev_getss" c_blockdev_getss
822   :: GuestfsP -> CString -> IO (CInt)
823
824 blockdev_getss :: GuestfsH -> String -> IO (Int)
825 blockdev_getss h device = do
826   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getss p device)
827   if (r == -1)
828     then do
829       err <- last_error h
830       fail err
831     else return (fromIntegral r)
832
833 foreign import ccall unsafe "guestfs_blockdev_getbsz" c_blockdev_getbsz
834   :: GuestfsP -> CString -> IO (CInt)
835
836 blockdev_getbsz :: GuestfsH -> String -> IO (Int)
837 blockdev_getbsz h device = do
838   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getbsz p device)
839   if (r == -1)
840     then do
841       err <- last_error h
842       fail err
843     else return (fromIntegral r)
844
845 foreign import ccall unsafe "guestfs_blockdev_setbsz" c_blockdev_setbsz
846   :: GuestfsP -> CString -> CInt -> IO (CInt)
847
848 blockdev_setbsz :: GuestfsH -> String -> Int -> IO ()
849 blockdev_setbsz h device blocksize = do
850   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_setbsz p device (fromIntegral blocksize))
851   if (r == -1)
852     then do
853       err <- last_error h
854       fail err
855     else return ()
856
857 foreign import ccall unsafe "guestfs_blockdev_getsz" c_blockdev_getsz
858   :: GuestfsP -> CString -> IO (Int64)
859
860 blockdev_getsz :: GuestfsH -> String -> IO (Integer)
861 blockdev_getsz h device = do
862   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getsz p device)
863   if (r == -1)
864     then do
865       err <- last_error h
866       fail err
867     else return (fromIntegral r)
868
869 foreign import ccall unsafe "guestfs_blockdev_getsize64" c_blockdev_getsize64
870   :: GuestfsP -> CString -> IO (Int64)
871
872 blockdev_getsize64 :: GuestfsH -> String -> IO (Integer)
873 blockdev_getsize64 h device = do
874   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_getsize64 p device)
875   if (r == -1)
876     then do
877       err <- last_error h
878       fail err
879     else return (fromIntegral r)
880
881 foreign import ccall unsafe "guestfs_blockdev_flushbufs" c_blockdev_flushbufs
882   :: GuestfsP -> CString -> IO (CInt)
883
884 blockdev_flushbufs :: GuestfsH -> String -> IO ()
885 blockdev_flushbufs h device = do
886   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_flushbufs p device)
887   if (r == -1)
888     then do
889       err <- last_error h
890       fail err
891     else return ()
892
893 foreign import ccall unsafe "guestfs_blockdev_rereadpt" c_blockdev_rereadpt
894   :: GuestfsP -> CString -> IO (CInt)
895
896 blockdev_rereadpt :: GuestfsH -> String -> IO ()
897 blockdev_rereadpt h device = do
898   r <- withCString device $ \device -> withForeignPtr h (\p -> c_blockdev_rereadpt p device)
899   if (r == -1)
900     then do
901       err <- last_error h
902       fail err
903     else return ()
904
905 foreign import ccall unsafe "guestfs_upload" c_upload
906   :: GuestfsP -> CString -> CString -> IO (CInt)
907
908 upload :: GuestfsH -> String -> String -> IO ()
909 upload h filename remotefilename = do
910   r <- withCString filename $ \filename -> withCString remotefilename $ \remotefilename -> withForeignPtr h (\p -> c_upload p filename remotefilename)
911   if (r == -1)
912     then do
913       err <- last_error h
914       fail err
915     else return ()
916
917 foreign import ccall unsafe "guestfs_download" c_download
918   :: GuestfsP -> CString -> CString -> IO (CInt)
919
920 download :: GuestfsH -> String -> String -> IO ()
921 download h remotefilename filename = do
922   r <- withCString remotefilename $ \remotefilename -> withCString filename $ \filename -> withForeignPtr h (\p -> c_download p remotefilename filename)
923   if (r == -1)
924     then do
925       err <- last_error h
926       fail err
927     else return ()
928
929 foreign import ccall unsafe "guestfs_tar_in" c_tar_in
930   :: GuestfsP -> CString -> CString -> IO (CInt)
931
932 tar_in :: GuestfsH -> String -> String -> IO ()
933 tar_in h tarfile directory = do
934   r <- withCString tarfile $ \tarfile -> withCString directory $ \directory -> withForeignPtr h (\p -> c_tar_in p tarfile directory)
935   if (r == -1)
936     then do
937       err <- last_error h
938       fail err
939     else return ()
940
941 foreign import ccall unsafe "guestfs_tar_out" c_tar_out
942   :: GuestfsP -> CString -> CString -> IO (CInt)
943
944 tar_out :: GuestfsH -> String -> String -> IO ()
945 tar_out h directory tarfile = do
946   r <- withCString directory $ \directory -> withCString tarfile $ \tarfile -> withForeignPtr h (\p -> c_tar_out p directory tarfile)
947   if (r == -1)
948     then do
949       err <- last_error h
950       fail err
951     else return ()
952
953 foreign import ccall unsafe "guestfs_tgz_in" c_tgz_in
954   :: GuestfsP -> CString -> CString -> IO (CInt)
955
956 tgz_in :: GuestfsH -> String -> String -> IO ()
957 tgz_in h tarball directory = do
958   r <- withCString tarball $ \tarball -> withCString directory $ \directory -> withForeignPtr h (\p -> c_tgz_in p tarball directory)
959   if (r == -1)
960     then do
961       err <- last_error h
962       fail err
963     else return ()
964
965 foreign import ccall unsafe "guestfs_tgz_out" c_tgz_out
966   :: GuestfsP -> CString -> CString -> IO (CInt)
967
968 tgz_out :: GuestfsH -> String -> String -> IO ()
969 tgz_out h directory tarball = do
970   r <- withCString directory $ \directory -> withCString tarball $ \tarball -> withForeignPtr h (\p -> c_tgz_out p directory tarball)
971   if (r == -1)
972     then do
973       err <- last_error h
974       fail err
975     else return ()
976
977 foreign import ccall unsafe "guestfs_mount_ro" c_mount_ro
978   :: GuestfsP -> CString -> CString -> IO (CInt)
979
980 mount_ro :: GuestfsH -> String -> String -> IO ()
981 mount_ro h device mountpoint = do
982   r <- withCString device $ \device -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount_ro p device mountpoint)
983   if (r == -1)
984     then do
985       err <- last_error h
986       fail err
987     else return ()
988
989 foreign import ccall unsafe "guestfs_mount_options" c_mount_options
990   :: GuestfsP -> CString -> CString -> CString -> IO (CInt)
991
992 mount_options :: GuestfsH -> String -> String -> String -> IO ()
993 mount_options h options device mountpoint = do
994   r <- withCString options $ \options -> withCString device $ \device -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount_options p options device mountpoint)
995   if (r == -1)
996     then do
997       err <- last_error h
998       fail err
999     else return ()
1000
1001 foreign import ccall unsafe "guestfs_mount_vfs" c_mount_vfs
1002   :: GuestfsP -> CString -> CString -> CString -> CString -> IO (CInt)
1003
1004 mount_vfs :: GuestfsH -> String -> String -> String -> String -> IO ()
1005 mount_vfs h options vfstype device mountpoint = do
1006   r <- withCString options $ \options -> withCString vfstype $ \vfstype -> withCString device $ \device -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount_vfs p options vfstype device mountpoint)
1007   if (r == -1)
1008     then do
1009       err <- last_error h
1010       fail err
1011     else return ()
1012
1013 foreign import ccall unsafe "guestfs_lvremove" c_lvremove
1014   :: GuestfsP -> CString -> IO (CInt)
1015
1016 lvremove :: GuestfsH -> String -> IO ()
1017 lvremove h device = do
1018   r <- withCString device $ \device -> withForeignPtr h (\p -> c_lvremove p device)
1019   if (r == -1)
1020     then do
1021       err <- last_error h
1022       fail err
1023     else return ()
1024
1025 foreign import ccall unsafe "guestfs_vgremove" c_vgremove
1026   :: GuestfsP -> CString -> IO (CInt)
1027
1028 vgremove :: GuestfsH -> String -> IO ()
1029 vgremove h vgname = do
1030   r <- withCString vgname $ \vgname -> withForeignPtr h (\p -> c_vgremove p vgname)
1031   if (r == -1)
1032     then do
1033       err <- last_error h
1034       fail err
1035     else return ()
1036
1037 foreign import ccall unsafe "guestfs_pvremove" c_pvremove
1038   :: GuestfsP -> CString -> IO (CInt)
1039
1040 pvremove :: GuestfsH -> String -> IO ()
1041 pvremove h device = do
1042   r <- withCString device $ \device -> withForeignPtr h (\p -> c_pvremove p device)
1043   if (r == -1)
1044     then do
1045       err <- last_error h
1046       fail err
1047     else return ()
1048
1049 foreign import ccall unsafe "guestfs_set_e2label" c_set_e2label
1050   :: GuestfsP -> CString -> CString -> IO (CInt)
1051
1052 set_e2label :: GuestfsH -> String -> String -> IO ()
1053 set_e2label h device label = do
1054   r <- withCString device $ \device -> withCString label $ \label -> withForeignPtr h (\p -> c_set_e2label p device label)
1055   if (r == -1)
1056     then do
1057       err <- last_error h
1058       fail err
1059     else return ()
1060
1061 foreign import ccall unsafe "guestfs_set_e2uuid" c_set_e2uuid
1062   :: GuestfsP -> CString -> CString -> IO (CInt)
1063
1064 set_e2uuid :: GuestfsH -> String -> String -> IO ()
1065 set_e2uuid h device uuid = do
1066   r <- withCString device $ \device -> withCString uuid $ \uuid -> withForeignPtr h (\p -> c_set_e2uuid p device uuid)
1067   if (r == -1)
1068     then do
1069       err <- last_error h
1070       fail err
1071     else return ()
1072
1073 foreign import ccall unsafe "guestfs_fsck" c_fsck
1074   :: GuestfsP -> CString -> CString -> IO (CInt)
1075
1076 fsck :: GuestfsH -> String -> String -> IO (Int)
1077 fsck h fstype device = do
1078   r <- withCString fstype $ \fstype -> withCString device $ \device -> withForeignPtr h (\p -> c_fsck p fstype device)
1079   if (r == -1)
1080     then do
1081       err <- last_error h
1082       fail err
1083     else return (fromIntegral r)
1084
1085 foreign import ccall unsafe "guestfs_zero" c_zero
1086   :: GuestfsP -> CString -> IO (CInt)
1087
1088 zero :: GuestfsH -> String -> IO ()
1089 zero h device = do
1090   r <- withCString device $ \device -> withForeignPtr h (\p -> c_zero p device)
1091   if (r == -1)
1092     then do
1093       err <- last_error h
1094       fail err
1095     else return ()
1096
1097 foreign import ccall unsafe "guestfs_grub_install" c_grub_install
1098   :: GuestfsP -> CString -> CString -> IO (CInt)
1099
1100 grub_install :: GuestfsH -> String -> String -> IO ()
1101 grub_install h root device = do
1102   r <- withCString root $ \root -> withCString device $ \device -> withForeignPtr h (\p -> c_grub_install p root device)
1103   if (r == -1)
1104     then do
1105       err <- last_error h
1106       fail err
1107     else return ()
1108
1109 foreign import ccall unsafe "guestfs_cp" c_cp
1110   :: GuestfsP -> CString -> CString -> IO (CInt)
1111
1112 cp :: GuestfsH -> String -> String -> IO ()
1113 cp h src dest = do
1114   r <- withCString src $ \src -> withCString dest $ \dest -> withForeignPtr h (\p -> c_cp p src dest)
1115   if (r == -1)
1116     then do
1117       err <- last_error h
1118       fail err
1119     else return ()
1120
1121 foreign import ccall unsafe "guestfs_cp_a" c_cp_a
1122   :: GuestfsP -> CString -> CString -> IO (CInt)
1123
1124 cp_a :: GuestfsH -> String -> String -> IO ()
1125 cp_a h src dest = do
1126   r <- withCString src $ \src -> withCString dest $ \dest -> withForeignPtr h (\p -> c_cp_a p src dest)
1127   if (r == -1)
1128     then do
1129       err <- last_error h
1130       fail err
1131     else return ()
1132
1133 foreign import ccall unsafe "guestfs_mv" c_mv
1134   :: GuestfsP -> CString -> CString -> IO (CInt)
1135
1136 mv :: GuestfsH -> String -> String -> IO ()
1137 mv h src dest = do
1138   r <- withCString src $ \src -> withCString dest $ \dest -> withForeignPtr h (\p -> c_mv p src dest)
1139   if (r == -1)
1140     then do
1141       err <- last_error h
1142       fail err
1143     else return ()
1144
1145 foreign import ccall unsafe "guestfs_drop_caches" c_drop_caches
1146   :: GuestfsP -> CInt -> IO (CInt)
1147
1148 drop_caches :: GuestfsH -> Int -> IO ()
1149 drop_caches h whattodrop = do
1150   r <- withForeignPtr h (\p -> c_drop_caches p (fromIntegral whattodrop))
1151   if (r == -1)
1152     then do
1153       err <- last_error h
1154       fail err
1155     else return ()
1156
1157 foreign import ccall unsafe "guestfs_ping_daemon" c_ping_daemon
1158   :: GuestfsP -> IO (CInt)
1159
1160 ping_daemon :: GuestfsH -> IO ()
1161 ping_daemon h = do
1162   r <- withForeignPtr h (\p -> c_ping_daemon p)
1163   if (r == -1)
1164     then do
1165       err <- last_error h
1166       fail err
1167     else return ()
1168
1169 foreign import ccall unsafe "guestfs_zerofree" c_zerofree
1170   :: GuestfsP -> CString -> IO (CInt)
1171
1172 zerofree :: GuestfsH -> String -> IO ()
1173 zerofree h device = do
1174   r <- withCString device $ \device -> withForeignPtr h (\p -> c_zerofree p device)
1175   if (r == -1)
1176     then do
1177       err <- last_error h
1178       fail err
1179     else return ()
1180
1181 foreign import ccall unsafe "guestfs_pvresize" c_pvresize
1182   :: GuestfsP -> CString -> IO (CInt)
1183
1184 pvresize :: GuestfsH -> String -> IO ()
1185 pvresize h device = do
1186   r <- withCString device $ \device -> withForeignPtr h (\p -> c_pvresize p device)
1187   if (r == -1)
1188     then do
1189       err <- last_error h
1190       fail err
1191     else return ()
1192
1193 foreign import ccall unsafe "guestfs_sfdisk_N" c_sfdisk_N
1194   :: GuestfsP -> CString -> CInt -> CInt -> CInt -> CInt -> CString -> IO (CInt)
1195
1196 sfdisk_N :: GuestfsH -> String -> Int -> Int -> Int -> Int -> String -> IO ()
1197 sfdisk_N h device partnum cyls heads sectors line = do
1198   r <- withCString device $ \device -> withCString line $ \line -> withForeignPtr h (\p -> c_sfdisk_N p device (fromIntegral partnum) (fromIntegral cyls) (fromIntegral heads) (fromIntegral sectors) line)
1199   if (r == -1)
1200     then do
1201       err <- last_error h
1202       fail err
1203     else return ()
1204
1205 foreign import ccall unsafe "guestfs_vg_activate_all" c_vg_activate_all
1206   :: GuestfsP -> CInt -> IO (CInt)
1207
1208 vg_activate_all :: GuestfsH -> Bool -> IO ()
1209 vg_activate_all h activate = do
1210   r <- withForeignPtr h (\p -> c_vg_activate_all p (fromBool activate))
1211   if (r == -1)
1212     then do
1213       err <- last_error h
1214       fail err
1215     else return ()
1216
1217 foreign import ccall unsafe "guestfs_vg_activate" c_vg_activate
1218   :: GuestfsP -> CInt -> Ptr CString -> IO (CInt)
1219
1220 vg_activate :: GuestfsH -> Bool -> [String] -> IO ()
1221 vg_activate h activate volgroups = do
1222   r <- withMany withCString volgroups $ \volgroups -> withArray0 nullPtr volgroups $ \volgroups -> withForeignPtr h (\p -> c_vg_activate p (fromBool activate) volgroups)
1223   if (r == -1)
1224     then do
1225       err <- last_error h
1226       fail err
1227     else return ()
1228
1229 foreign import ccall unsafe "guestfs_lvresize" c_lvresize
1230   :: GuestfsP -> CString -> CInt -> IO (CInt)
1231
1232 lvresize :: GuestfsH -> String -> Int -> IO ()
1233 lvresize h device mbytes = do
1234   r <- withCString device $ \device -> withForeignPtr h (\p -> c_lvresize p device (fromIntegral mbytes))
1235   if (r == -1)
1236     then do
1237       err <- last_error h
1238       fail err
1239     else return ()
1240
1241 foreign import ccall unsafe "guestfs_resize2fs" c_resize2fs
1242   :: GuestfsP -> CString -> IO (CInt)
1243
1244 resize2fs :: GuestfsH -> String -> IO ()
1245 resize2fs h device = do
1246   r <- withCString device $ \device -> withForeignPtr h (\p -> c_resize2fs p device)
1247   if (r == -1)
1248     then do
1249       err <- last_error h
1250       fail err
1251     else return ()
1252
1253 foreign import ccall unsafe "guestfs_e2fsck_f" c_e2fsck_f
1254   :: GuestfsP -> CString -> IO (CInt)
1255
1256 e2fsck_f :: GuestfsH -> String -> IO ()
1257 e2fsck_f h device = do
1258   r <- withCString device $ \device -> withForeignPtr h (\p -> c_e2fsck_f p device)
1259   if (r == -1)
1260     then do
1261       err <- last_error h
1262       fail err
1263     else return ()
1264
1265 foreign import ccall unsafe "guestfs_sleep" c_sleep
1266   :: GuestfsP -> CInt -> IO (CInt)
1267
1268 sleep :: GuestfsH -> Int -> IO ()
1269 sleep h secs = do
1270   r <- withForeignPtr h (\p -> c_sleep p (fromIntegral secs))
1271   if (r == -1)
1272     then do
1273       err <- last_error h
1274       fail err
1275     else return ()
1276
1277 foreign import ccall unsafe "guestfs_ntfs_3g_probe" c_ntfs_3g_probe
1278   :: GuestfsP -> CInt -> CString -> IO (CInt)
1279
1280 ntfs_3g_probe :: GuestfsH -> Bool -> String -> IO (Int)
1281 ntfs_3g_probe h rw device = do
1282   r <- withCString device $ \device -> withForeignPtr h (\p -> c_ntfs_3g_probe p (fromBool rw) device)
1283   if (r == -1)
1284     then do
1285       err <- last_error h
1286       fail err
1287     else return (fromIntegral r)
1288
1289 foreign import ccall unsafe "guestfs_scrub_device" c_scrub_device
1290   :: GuestfsP -> CString -> IO (CInt)
1291
1292 scrub_device :: GuestfsH -> String -> IO ()
1293 scrub_device h device = do
1294   r <- withCString device $ \device -> withForeignPtr h (\p -> c_scrub_device p device)
1295   if (r == -1)
1296     then do
1297       err <- last_error h
1298       fail err
1299     else return ()
1300
1301 foreign import ccall unsafe "guestfs_scrub_file" c_scrub_file
1302   :: GuestfsP -> CString -> IO (CInt)
1303
1304 scrub_file :: GuestfsH -> String -> IO ()
1305 scrub_file h file = do
1306   r <- withCString file $ \file -> withForeignPtr h (\p -> c_scrub_file p file)
1307   if (r == -1)
1308     then do
1309       err <- last_error h
1310       fail err
1311     else return ()
1312
1313 foreign import ccall unsafe "guestfs_scrub_freespace" c_scrub_freespace
1314   :: GuestfsP -> CString -> IO (CInt)
1315
1316 scrub_freespace :: GuestfsH -> String -> IO ()
1317 scrub_freespace h dir = do
1318   r <- withCString dir $ \dir -> withForeignPtr h (\p -> c_scrub_freespace p dir)
1319   if (r == -1)
1320     then do
1321       err <- last_error h
1322       fail err
1323     else return ()
1324
1325 foreign import ccall unsafe "guestfs_wc_l" c_wc_l
1326   :: GuestfsP -> CString -> IO (CInt)
1327
1328 wc_l :: GuestfsH -> String -> IO (Int)
1329 wc_l h path = do
1330   r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_l p path)
1331   if (r == -1)
1332     then do
1333       err <- last_error h
1334       fail err
1335     else return (fromIntegral r)
1336
1337 foreign import ccall unsafe "guestfs_wc_w" c_wc_w
1338   :: GuestfsP -> CString -> IO (CInt)
1339
1340 wc_w :: GuestfsH -> String -> IO (Int)
1341 wc_w h path = do
1342   r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_w p path)
1343   if (r == -1)
1344     then do
1345       err <- last_error h
1346       fail err
1347     else return (fromIntegral r)
1348
1349 foreign import ccall unsafe "guestfs_wc_c" c_wc_c
1350   :: GuestfsP -> CString -> IO (CInt)
1351
1352 wc_c :: GuestfsH -> String -> IO (Int)
1353 wc_c h path = do
1354   r <- withCString path $ \path -> withForeignPtr h (\p -> c_wc_c p path)
1355   if (r == -1)
1356     then do
1357       err <- last_error h
1358       fail err
1359     else return (fromIntegral r)
1360
1361 foreign import ccall unsafe "guestfs_du" c_du
1362   :: GuestfsP -> CString -> IO (Int64)
1363
1364 du :: GuestfsH -> String -> IO (Integer)
1365 du h path = do
1366   r <- withCString path $ \path -> withForeignPtr h (\p -> c_du p path)
1367   if (r == -1)
1368     then do
1369       err <- last_error h
1370       fail err
1371     else return (fromIntegral r)
1372
1373 foreign import ccall unsafe "guestfs_mount_loop" c_mount_loop
1374   :: GuestfsP -> CString -> CString -> IO (CInt)
1375
1376 mount_loop :: GuestfsH -> String -> String -> IO ()
1377 mount_loop h file mountpoint = do
1378   r <- withCString file $ \file -> withCString mountpoint $ \mountpoint -> withForeignPtr h (\p -> c_mount_loop p file mountpoint)
1379   if (r == -1)
1380     then do
1381       err <- last_error h
1382       fail err
1383     else return ()
1384
1385 foreign import ccall unsafe "guestfs_mkswap" c_mkswap
1386   :: GuestfsP -> CString -> IO (CInt)
1387
1388 mkswap :: GuestfsH -> String -> IO ()
1389 mkswap h device = do
1390   r <- withCString device $ \device -> withForeignPtr h (\p -> c_mkswap p device)
1391   if (r == -1)
1392     then do
1393       err <- last_error h
1394       fail err
1395     else return ()
1396
1397 foreign import ccall unsafe "guestfs_mkswap_L" c_mkswap_L
1398   :: GuestfsP -> CString -> CString -> IO (CInt)
1399
1400 mkswap_L :: GuestfsH -> String -> String -> IO ()
1401 mkswap_L h label device = do
1402   r <- withCString label $ \label -> withCString device $ \device -> withForeignPtr h (\p -> c_mkswap_L p label device)
1403   if (r == -1)
1404     then do
1405       err <- last_error h
1406       fail err
1407     else return ()
1408
1409 foreign import ccall unsafe "guestfs_mkswap_U" c_mkswap_U
1410   :: GuestfsP -> CString -> CString -> IO (CInt)
1411
1412 mkswap_U :: GuestfsH -> String -> String -> IO ()
1413 mkswap_U h uuid device = do
1414   r <- withCString uuid $ \uuid -> withCString device $ \device -> withForeignPtr h (\p -> c_mkswap_U p uuid device)
1415   if (r == -1)
1416     then do
1417       err <- last_error h
1418       fail err
1419     else return ()
1420
1421 foreign import ccall unsafe "guestfs_mknod" c_mknod
1422   :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
1423
1424 mknod :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
1425 mknod h mode devmajor devminor path = do
1426   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
1427   if (r == -1)
1428     then do
1429       err <- last_error h
1430       fail err
1431     else return ()
1432
1433 foreign import ccall unsafe "guestfs_mkfifo" c_mkfifo
1434   :: GuestfsP -> CInt -> CString -> IO (CInt)
1435
1436 mkfifo :: GuestfsH -> Int -> String -> IO ()
1437 mkfifo h mode path = do
1438   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mkfifo p (fromIntegral mode) path)
1439   if (r == -1)
1440     then do
1441       err <- last_error h
1442       fail err
1443     else return ()
1444
1445 foreign import ccall unsafe "guestfs_mknod_b" c_mknod_b
1446   :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
1447
1448 mknod_b :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
1449 mknod_b h mode devmajor devminor path = do
1450   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod_b p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
1451   if (r == -1)
1452     then do
1453       err <- last_error h
1454       fail err
1455     else return ()
1456
1457 foreign import ccall unsafe "guestfs_mknod_c" c_mknod_c
1458   :: GuestfsP -> CInt -> CInt -> CInt -> CString -> IO (CInt)
1459
1460 mknod_c :: GuestfsH -> Int -> Int -> Int -> String -> IO ()
1461 mknod_c h mode devmajor devminor path = do
1462   r <- withCString path $ \path -> withForeignPtr h (\p -> c_mknod_c p (fromIntegral mode) (fromIntegral devmajor) (fromIntegral devminor) path)
1463   if (r == -1)
1464     then do
1465       err <- last_error h
1466       fail err
1467     else return ()
1468
1469 foreign import ccall unsafe "guestfs_umask" c_umask
1470   :: GuestfsP -> CInt -> IO (CInt)
1471
1472 umask :: GuestfsH -> Int -> IO (Int)
1473 umask h mask = do
1474   r <- withForeignPtr h (\p -> c_umask p (fromIntegral mask))
1475   if (r == -1)
1476     then do
1477       err <- last_error h
1478       fail err
1479     else return (fromIntegral r)
1480