blob: 3b46ee607f66a7222c12dc94d5c731ecbbc4f964 [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);
};