diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-05-17 22:06:00 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-05-17 22:06:00 +0100 |
commit | 598484729632d1207dc3e1493f27499de18d2242 (patch) | |
tree | d67ef79604272e75c07fb1f2f24fd3abdd60a469 /generator | |
parent | ef6f877b9df261fad1fbf361b8ce7af1055dfbb7 (diff) | |
download | libguestfs-598484729632d1207dc3e1493f27499de18d2242.tar.gz libguestfs-598484729632d1207dc3e1493f27499de18d2242.tar.xz libguestfs-598484729632d1207dc3e1493f27499de18d2242.zip |
New APIs: is-zero and is-zero-device, to test if file or device is all zeroes.
Diffstat (limited to 'generator')
-rw-r--r-- | generator/generator_actions.ml | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml index 44f47df1..d0aac875 100644 --- a/generator/generator_actions.ml +++ b/generator/generator_actions.ml @@ -2273,7 +2273,7 @@ command and it can change in future in ways beyond our control. In other words, the output is not guaranteed by the ABI. See also: L<file(1)>, C<guestfs_vfs_type>, C<guestfs_lstat>, -C<guestfs_is_file>, C<guestfs_is_blockdev> (etc)."); +C<guestfs_is_file>, C<guestfs_is_blockdev> (etc), C<guestfs_is_zero>."); ("command", (RString "output", [StringList "arguments"], []), 50, [ProtocolLimitWarning], [InitScratchFS, Always, TestOutput ( @@ -2979,7 +2979,8 @@ How many blocks are zeroed isn't specified (but it's I<not> enough to securely wipe the device). It should be sufficient to remove any partition tables, filesystem superblocks and so on. -See also: C<guestfs_zero_device>, C<guestfs_scrub_device>."); +See also: C<guestfs_zero_device>, C<guestfs_scrub_device>, +C<guestfs_is_zero_device>"); ("grub_install", (RErr, [Pathname "root"; Device "device"], []), 86, [], (* See: @@ -5937,6 +5938,29 @@ Instead, use the autosync flag (C<guestfs_set_autosync>) to control whether or not this operation is performed when the handle is closed."); + ("is_zero", (RBool "zeroflag", [Pathname "path"], []), 283, [], + [InitISOFS, Always, TestOutputTrue ( + [["is_zero"; "/100kallzeroes"]]); + InitISOFS, Always, TestOutputFalse ( + [["is_zero"; "/100kallspaces"]])], + "test if a file contains all zero bytes", + "\ +This returns true iff the file exists and the file is empty or +it contains all zero bytes."); + + ("is_zero_device", (RBool "zeroflag", [Device "device"], []), 284, [], + [InitBasicFS, Always, TestOutputTrue ( + [["umount"; "/dev/sda1"]; + ["zero_device"; "/dev/sda1"]; + ["is_zero_device"; "/dev/sda1"]]); + InitBasicFS, Always, TestOutputFalse ( + [["is_zero_device"; "/dev/sda1"]])], + "test if a device contains all zero bytes", + "\ +This returns true iff the device exists and contains all zero bytes. + +Note that for large devices this can take a long time to run."); + ] let all_functions = non_daemon_functions @ daemon_functions |