| // 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; |
| }; |