blob: a618deb4c0fdcf22ebb2b20a31aa51cd2826d4de [file] [log] [blame]
// Copyright 2018 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.pkg;
using zx;
/// Administrates the critical system blobs on the system.
[Discoverable]
protocol SystemBlobAdmin {
/// Allows blobs from old system versions to be garbage collected. The current system blobs
/// will not be collected.
ReleaseRetainedBlobs();
/// Adds the blobs listed in the |retention_index| blob to the retention list. This should be
/// called during a system upgrade with the new system blob in order to make sure they are not
/// garbage collected before the upgrade completes.
///
/// Arguments:
/// * |retention_index| is the blob id for a list of blobs to retain.
///
/// Return Values:
/// * |ZX_OK| if the blobs were successfully retained.
/// * |ZX_ERR_IO| if there is some other unspecified error during I/O.
/// * |ZX_ERR_NOT_FOUND| if the |retention_index| could not be found on the local system.
RetainBlobs(BlobId retention_index) -> (zx.status status);
};