| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| library fuchsia.blobfs; |
| |
| using zx; |
| |
| /// Describes contiguous run of allocated blocks. |
| type BlockRegion = struct { |
| offset uint64; |
| length uint64; |
| }; |
| |
| @discoverable |
| protocol Blobfs { |
| /// Retrieve information about allocated regions on the filesystem. |
| GetAllocatedRegions() -> (resource struct { |
| status zx.status; |
| regions zx.handle:<VMO, optional>; |
| count uint64; |
| }); |
| |
| /// Assign the handler for blob corruption callbacks. Only one handler will receive callbacks at |
| /// any given time. |
| SetCorruptBlobHandler(resource struct { |
| handler client_end:CorruptBlobHandler; |
| }) -> (struct { |
| status zx.status; |
| }); |
| }; |
| |
| protocol CorruptBlobHandler { |
| /// Notify that a particular blob is corrupted to the CorruptBlobHandler service. |
| CorruptBlob(struct { |
| merkleroot vector<uint8>:64; |
| }); |
| }; |