| // 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 additional driver packages with the driver manager. |
| [Discoverable] |
| protocol DriverRegistrar { |
| /// Informs the driver manager that a new driver package is available. |
| /// The driver manager will cache a copy of the driver. |
| /// * 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_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(fuchsia.pkg.PackageUrl package_url) -> () error zx.status; |
| }; |