blob: 52905a2fa0d5483eb921133565a5a6d78258ec68 [file] [log] [blame]
// Copyright 2020 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.driver.registrar;
using fuchsia.pkg;
using zx;
/// Protocol for registering ephemeral driver packages.
@discoverable
protocol DriverRegistrar {
/// Informs the driver framework of an ephemeral driver. The metadata will
/// be cached by the driver index to be used in future matching operations.
/// * error a zx_status value indicating failure. One of the following:
/// * `ZX_ERR_ACCESS_DENIED` if the device does not have permissions
/// to fetch the package.
/// * `ZX_ERR_ALREADY_EXISTS` if the driver component being registered
/// already exists in the boot or base drivers list.
/// * `ZX_ERR_NOT_FOUND` if the package does not exist.
/// * `ZX_ERR_IO` if there is some other unspecified error during I/O.
/// * `ZX_ERR_ADDRESS_UNREACHABLE` if the package resolver does not
/// know about the repo.
/// * `ZX_ERR_NO_SPACE` if the device is out of space.
/// * `ZX_ERR_UNAVAILABLE` if the package resolver could not be reached.
/// * `ZX_ERR_INTERNAL` if an unspecified error was encountered.
Register(struct {
package_url fuchsia.pkg.PackageUrl;
}) -> (struct {}) error zx.status;
};