From: Richard W.M. Jones <"Richard W.M. Jones "> Date: Tue, 15 Apr 2008 10:26:46 +0000 (+0100) Subject: Don't need the ': device' typecasts any more. X-Git-Tag: 1.0.4~24^2~29 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=0019c13c600d34f12778e849246711bb20ba4ee2;p=virt-top.git Don't need the ': device' typecasts any more. --- diff --git a/virt-df/virt_df_ext2.ml b/virt-df/virt_df_ext2.ml index 0ea8a25..2d1d1b8 100644 --- a/virt-df/virt_df_ext2.ml +++ b/virt-df/virt_df_ext2.ml @@ -27,7 +27,7 @@ open Virt_df let superblock_offset = 1024L -let probe_ext2 (dev : device) = +let probe_ext2 dev = (* Load the superblock. *) let bits = dev#read_bitstring superblock_offset 1024 in diff --git a/virt-df/virt_df_linux_swap.ml b/virt-df/virt_df_linux_swap.ml index ad56149..afd671f 100644 --- a/virt-df/virt_df_linux_swap.ml +++ b/virt-df/virt_df_linux_swap.ml @@ -23,7 +23,7 @@ open Virt_df_gettext.Gettext open Virt_df -let probe_swap (dev : device) = +let probe_swap dev = (* Load the "superblock" (ie. first 0x1000 bytes). *) let bits = dev#read_bitstring 0L 0x1000 in diff --git a/virt-df/virt_df_lvm2.ml b/virt-df/virt_df_lvm2.ml index a79ec7f..4247dc3 100644 --- a/virt-df/virt_df_lvm2.ml +++ b/virt-df/virt_df_lvm2.ml @@ -24,9 +24,33 @@ open Printf open Virt_df_gettext.Gettext open Virt_df -let probe_lvm2 (dev : device) = - raise Not_found +let sector_size = 512 +let sector_size64 = 512L + +let pv_label_offset = sector_size64 + +let rec probe_pv dev = + try ignore (read_pv_label dev); true + with _ -> false + +and read_pv_label dev = + (* Load the second sector. *) + let bits = dev#read_bitstring pv_label_offset sector_size in + + bitmatch bits with + | labelone : 8*8 : bitstring; (* "LABELONE" *) + padding : 16*8 : bitstring; + lvm2_ver : 8*8 : bitstring; (* "LVM2 001" *) + uuid : 32*8 : bitstring (* UUID *) + when Bitmatch.string_of_bitstring labelone = "LABELONE" && + Bitmatch.string_of_bitstring lvm2_ver = "LVM2 001" -> + uuid + | _ -> + invalid_arg (sprintf "read_pv_label: %s: not an LVM2 physical volume" + dev#name) + +let list_lvs devs = [] (* Register with main code. *) let () = - filesystem_type_register "LVM2" probe_lvm2 + lvm_type_register "LVM2" probe_pv list_lvs diff --git a/virt-df/virt_df_mbr.ml b/virt-df/virt_df_mbr.ml index b9a6cb7..b56189c 100644 --- a/virt-df/virt_df_mbr.ml +++ b/virt-df/virt_df_mbr.ml @@ -66,7 +66,7 @@ end @raise Not_found if it is not an MBR. *) -let rec probe_mbr (dev : device) = +let rec probe_mbr dev = (* Adjust size to sectors. *) let size = dev#size /^ sector_size64 in