summaryrefslogtreecommitdiffstats
path: root/ocaml
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2009-04-15 17:48:54 +0100
committerRichard Jones <rjones@redhat.com>2009-04-15 17:48:54 +0100
commitb348eacbc4d84337856cf7cca518d61c63e92631 (patch)
treead6cefaf75e05e6a4da9c9b18061222a3ba98727 /ocaml
parente038597ebd1e43c83a8ddde21c4f1898eb7a9a98 (diff)
downloadlibguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.tar.gz
libguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.tar.xz
libguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.zip
Generated code for blockdev_* calls, RInt64, enhanced tests.
Diffstat (limited to 'ocaml')
-rw-r--r--ocaml/guestfs.ml10
-rw-r--r--ocaml/guestfs.mli30
-rw-r--r--ocaml/guestfs_c_actions.c231
3 files changed, 271 insertions, 0 deletions
diff --git a/ocaml/guestfs.ml b/ocaml/guestfs.ml
index e29daea5..6477e95b 100644
--- a/ocaml/guestfs.ml
+++ b/ocaml/guestfs.ml
@@ -182,3 +182,13 @@ external stat : t -> string -> stat = "ocaml_guestfs_stat"
external lstat : t -> string -> stat = "ocaml_guestfs_lstat"
external statvfs : t -> string -> statvfs = "ocaml_guestfs_statvfs"
external tune2fs_l : t -> string -> (string * string) list = "ocaml_guestfs_tune2fs_l"
+external blockdev_setro : t -> string -> unit = "ocaml_guestfs_blockdev_setro"
+external blockdev_setrw : t -> string -> unit = "ocaml_guestfs_blockdev_setrw"
+external blockdev_getro : t -> string -> bool = "ocaml_guestfs_blockdev_getro"
+external blockdev_getss : t -> string -> int = "ocaml_guestfs_blockdev_getss"
+external blockdev_getbsz : t -> string -> int = "ocaml_guestfs_blockdev_getbsz"
+external blockdev_setbsz : t -> string -> int -> unit = "ocaml_guestfs_blockdev_setbsz"
+external blockdev_getsz : t -> string -> int64 = "ocaml_guestfs_blockdev_getsz"
+external blockdev_getsize64 : t -> string -> int64 = "ocaml_guestfs_blockdev_getsize64"
+external blockdev_flushbufs : t -> string -> unit = "ocaml_guestfs_blockdev_flushbufs"
+external blockdev_rereadpt : t -> string -> unit = "ocaml_guestfs_blockdev_rereadpt"
diff --git a/ocaml/guestfs.mli b/ocaml/guestfs.mli
index e6f5231e..b9b9f522 100644
--- a/ocaml/guestfs.mli
+++ b/ocaml/guestfs.mli
@@ -325,3 +325,33 @@ val statvfs : t -> string -> statvfs
val tune2fs_l : t -> string -> (string * string) list
(** get ext2/ext3 superblock details *)
+val blockdev_setro : t -> string -> unit
+(** set block device to read-only *)
+
+val blockdev_setrw : t -> string -> unit
+(** set block device to read-write *)
+
+val blockdev_getro : t -> string -> bool
+(** is block device set to read-only *)
+
+val blockdev_getss : t -> string -> int
+(** get sectorsize of block device *)
+
+val blockdev_getbsz : t -> string -> int
+(** get blocksize of block device *)
+
+val blockdev_setbsz : t -> string -> int -> unit
+(** set blocksize of block device *)
+
+val blockdev_getsz : t -> string -> int64
+(** get total size of device in 512-byte sectors *)
+
+val blockdev_getsize64 : t -> string -> int64
+(** get total size of device in bytes *)
+
+val blockdev_flushbufs : t -> string -> unit
+(** flush device buffers *)
+
+val blockdev_rereadpt : t -> string -> unit
+(** reread partition table *)
+
diff --git a/ocaml/guestfs_c_actions.c b/ocaml/guestfs_c_actions.c
index a3186d10..c0618b29 100644
--- a/ocaml/guestfs_c_actions.c
+++ b/ocaml/guestfs_c_actions.c
@@ -1934,3 +1934,234 @@ ocaml_guestfs_tune2fs_l (value gv, value devicev)
CAMLreturn (rv);
}
+CAMLprim value
+ocaml_guestfs_blockdev_setro (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_setro: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_setro (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_setro");
+
+ rv = Val_unit;
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_setrw (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_setrw: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_setrw (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_setrw");
+
+ rv = Val_unit;
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_getro (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_getro: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_getro (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_getro");
+
+ rv = Val_bool (r);
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_getss (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_getss: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_getss (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_getss");
+
+ rv = Val_int (r);
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_getbsz (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_getbsz: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_getbsz (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_getbsz");
+
+ rv = Val_int (r);
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_setbsz (value gv, value devicev, value blocksizev)
+{
+ CAMLparam3 (gv, devicev, blocksizev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_setbsz: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int blocksize = Int_val (blocksizev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_setbsz (g, device, blocksize);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_setbsz");
+
+ rv = Val_unit;
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_getsz (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_getsz: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int64_t r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_getsz (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_getsz");
+
+ rv = caml_copy_int64 (r);
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_getsize64 (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_getsize64: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int64_t r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_getsize64 (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_getsize64");
+
+ rv = caml_copy_int64 (r);
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_flushbufs (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_flushbufs: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_flushbufs (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_flushbufs");
+
+ rv = Val_unit;
+ CAMLreturn (rv);
+}
+
+CAMLprim value
+ocaml_guestfs_blockdev_rereadpt (value gv, value devicev)
+{
+ CAMLparam2 (gv, devicev);
+ CAMLlocal1 (rv);
+
+ guestfs_h *g = Guestfs_val (gv);
+ if (g == NULL)
+ caml_failwith ("blockdev_rereadpt: used handle after closing it");
+
+ const char *device = String_val (devicev);
+ int r;
+
+ caml_enter_blocking_section ();
+ r = guestfs_blockdev_rereadpt (g, device);
+ caml_leave_blocking_section ();
+ if (r == -1)
+ ocaml_guestfs_raise_error (g, "blockdev_rereadpt");
+
+ rv = Val_unit;
+ CAMLreturn (rv);
+}
+