X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=lib%2Fdiskimage_ext2.ml;h=ade794023c9cd427fc7f85e8d100b3cf05004df8;hb=71536ae75dceb08e0f3c3403033fb2eb25a08883;hp=ea020b518d1813dd966a7a4aea426d3c29a0097f;hpb=8ecbebaf01f96a781ded3e24235697c62bc515b4;p=virt-df.git diff --git a/lib/diskimage_ext2.ml b/lib/diskimage_ext2.ml index ea020b5..ade7940 100644 --- a/lib/diskimage_ext2.ml +++ b/lib/diskimage_ext2.ml @@ -22,7 +22,7 @@ open Unix open Printf -open Diskimage_utils +open Diskimage_impl open Int63.Operators @@ -31,11 +31,11 @@ let ( -* ) = Int32.sub let ( ** ) = Int32.mul let ( /* ) = Int32.div -let plugin_id = "ext2" +let id = "ext2" let superblock_offset = ~^1024 let superblock_len = ~^1024 -let probe dev = +let rec probe dev = (* Load the superblock. *) let bits = dev#read_bitstring superblock_offset superblock_len in @@ -127,7 +127,7 @@ let probe dev = let fs_dev = new blocksize_overlay block_size dev in { - fs_plugin_id = plugin_id; + fs_cb = callbacks; fs_dev = fs_dev; fs_blocksize = block_size; @@ -151,9 +151,13 @@ let probe dev = | { _ } -> raise Not_found (* Not an EXT2/3 superblock. *) -let offset_is_free _ _ = false +and offset_is_free _ _ = false -let callbacks = { - fs_cb_probe = probe; +and callbacks = { + fs_cb_name = id; + fs_cb_printable_name = "Linux ext2/3"; fs_cb_offset_is_free = offset_is_free; } + +(* Register the plugin. *) +let () = register_plugin ~filesystem:probe id