summaryrefslogtreecommitdiffstats
path: root/virt-df/virt_df_linux_swap.ml
diff options
context:
space:
mode:
Diffstat (limited to 'virt-df/virt_df_linux_swap.ml')
-rw-r--r--virt-df/virt_df_linux_swap.ml24
1 files changed, 24 insertions, 0 deletions
diff --git a/virt-df/virt_df_linux_swap.ml b/virt-df/virt_df_linux_swap.ml
new file mode 100644
index 0000000..a1f759a
--- /dev/null
+++ b/virt-df/virt_df_linux_swap.ml
@@ -0,0 +1,24 @@
+(* 'df' command for virtual domains.
+ * $Id$
+ *
+ * Support for Linux swap partitions.
+ *)
+
+(* Int64 operators for convenience. *)
+let (+^) = Int64.add
+let (-^) = Int64.sub
+let ( *^ ) = Int64.mul
+let (/^) = Int64.div
+
+let probe_swap target part_type fd start size =
+ Virt_df.Swap {
+ Virt_df.swap_name = "Linux swap";
+ swap_block_size = 4096L; (* XXX *)
+ swap_blocks_total = size *^ 512L /^ 4096L;
+ }
+
+(* Register with main code. *)
+let () =
+ Virt_df.fs_register
+ [ 0x82 ] (* Partition type. *)
+ probe_swap