| // 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] |
| interface SystemBlobAdmin { |
| /// Allows blobs from old system versions to be garbage collected. The current system blobs |
| /// will not be collected. |
| 1: 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. |
| 2: RetainBlobs(BlobId retention_index) -> (zx.status status); |
| }; |