Google is committed to advancing racial equity for Black communities. See how.

fuchsia.driver.framework

PROTOCOLS

Driver

Defined in fuchsia.driver.framework/driver_host.fidl

Protocol through which a driver's lifecycle can be managed.

Closing the protocol's channel is used to signal:

  1. To the driver manager that the driver has stopped.
  2. To the driver that it should stop.

DriverHost

Defined in fuchsia.driver.framework/driver_host.fidl

Protocol through which a driver host can be managed.

Start

Start a driver within a driver host.

Request

NameType
start_args DriverStartArgs
driver request<Driver>

DriverIndex

Defined in fuchsia.driver.framework/driver_index.fidl

Protocol through which the driver index can be queried.

MatchDriver

Match a set of device arguments to a driver package URL.

Request

NameType
args NodeAddArgs

Response

NameType
result DriverIndex_MatchDriver_Result

Node

Defined in fuchsia.driver.framework/topology.fidl

Protocol through which a driver manages a node that it is bound to.

AddChild

Adds a child node to this node.

If node is present, this driver takes responsibility for binding to the newly created child. Otherwise, the driver framework will locate an appropriate driver to bind the child to.

Request

NameType
args NodeAddArgs
controller request<NodeController>
node request<Node>?

NodeController

Defined in fuchsia.driver.framework/topology.fidl

Protocol through which a parent node controls one of its children.

Remove

Removes the node and all of its children.

Request

NameType

STRUCTS

DriverIndex_MatchDriver_Response

Defined in fuchsia.driver.framework/driver_index.fidl

NameTypeDescriptionDefault
url string[4096] No default
matched_args NodeAddArgs No default

TABLES

DriverStartArgs

Defined in fuchsia.driver.framework/driver_host.fidl

Arguments for starting a driver.

OrdinalNameTypeDescription
1 node Node

Node that the driver is bound to.

2 offers vector<string>[64]

Offers provided to the driver, for |node|. These are names of FIDL protocols that can be accessed through |exposed_dir|.

3 symbols vector<NodeSymbol>[64]

Symbols provided to the driver, for |node|. These come from the driver that added |node|, and are filtered to the symbols requested in the bind program.

4 url fuchsia.url/Url

URL of the package containing the driver. This is purely informational, used only to provide data for inspect.

5 program fuchsia.data/Dictionary

Information about the driver to start. Currently, we support the following entries:

  1. "binary": a string containing the package-relative path to the driver binary.
  2. "colocate" (optional): a string containing "true" or "false" specifying whether the driver should be colocated in the same driver host as the driver that added |node|. If not specified, the driver will be launched in a new driver host.
6 ns vector<fuchsia.component.runner/ComponentNamespaceEntry>[32]

Incoming namespace provided to the driver.

7 outgoing_dir request<fuchsia.io/Directory>

Outgoing directory served by the driver.

8 exposed_dir fuchsia.io/Directory

Exposed directory provided to the driver, for |node|.

NodeAddArgs

Defined in fuchsia.driver.framework/topology.fidl

Arguments for adding a node.

OrdinalNameTypeDescription
1 name string[128]

Name of the node.

2 offers vector<string>[64]

FIDL services to offer to the driver that is bound to this node.

3 symbols vector<NodeSymbol>[64]

Functions to provide to the driver that is bound to this node.

4 properties vector<NodeProperty>[64]

Properties of the node.

NodeProperty

Defined in fuchsia.driver.framework/topology.fidl

Definition of a property for a node. A property is commonly used to match a node to a driver for driver binding.

OrdinalNameTypeDescription
1 key uint32

Key for the property.

2 value uint32

Value for the property.

NodeSymbol

Defined in fuchsia.driver.framework/topology.fidl

Definition of a symbol provided by a driver for a node. A symbol is local to a driver host.

OrdinalNameTypeDescription
1 name string[128]

Name of the symbol.

2 address zx/vaddr

Virtual address of the symbol, within a driver host's process.

UNIONS

DriverIndex_MatchDriver_Result

Defined in fuchsia.driver.framework/driver_index.fidl

NameTypeDescription
response DriverIndex_MatchDriver_Response
err zx/status

CONSTANTS

NameValueTypeDescription
MAX_NODE_NAME_LENGTH 128 uint8
MAX_OFFER_COUNT 64 uint8
MAX_PROPERTY_COUNT 64 uint8
MAX_SYMBOL_COUNT 64 uint8
MAX_SYMBOL_NAME_LENGTH 128 uint8

TYPE ALIASES

NameValueDescription
NodePropertyKey string[256]
NodePropertyValueBool bool
NodePropertyValueEnum string[256]
NodePropertyValueString string[256]
NodePropertyValueUint uint32