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

fuchsia.driver.development

PROTOCOLS

DeviceInfoIterator

Defined in fuchsia.driver.development/development.fidl

GetNext

Return 0 devices when no more entries left.

Request

<EMPTY>

Response

NameType
drivers vector<DeviceInfo>

DriverDevelopment

Defined in fuchsia.driver.development/development.fidl

Interface for developing and debugging drivers. This interface should only be used for development and disabled in release builds.

GetDeviceInfo

Returns the list of devices that are running on the system. If a |device_filter| is provided, the returned list will be filtered to only include devices specified in the filter. ZX_ERR_NOT_FOUND indicates that there is no device matching the given path for at least one device in |device_filter|.

|iterator| is closed with following epitaphs on error: ZX_ERR_BAD_PATH indicates that the given path is not valid. ZX_ERR_BUFFER_TOO_SMALL indicates either that the given path is too long, or that the device has more than the maximum number of properties (PROPERTIES_MAX).

Request

NameType
device_filter vector<string>
iterator request<DeviceInfoIterator>

GetDriverInfo

Returns a list of all drivers that are known to the system. If a |driver_filter| is provided, the returned list will be filtered to only include drivers specified in the filter.

|iterator| is closed with following epitaphs on error: ZX_ERR_NOT_FOUND indicates that there is no driver matching the given path for at least one driver in |driver_filter|. ZX_ERR_BUFFER_TOO_SMALL indicates that the driver's bind program is longer than the maximum number of instructions (BIND_PROGRAM_INSTRUCTIONS_MAX).

Request

NameType
driver_filter vector<string>
iterator request<DriverInfoIterator>

RestartDriverHosts

Restart all Driver Hosts containing the driver specified by driver path. ZX_ERR_NOT_FOUND indicates that there is no driver matching the given path.

Request

NameType
driver_path string[1024]

Response

NameType
result DriverDevelopment_RestartDriverHosts_Result

DriverIndex

Defined in fuchsia.driver.development/development.fidl

Interface for developing and debugging drivers. This interface should only be used for development and disabled in release builds.

GetDriverInfo

Returns a list of all drivers that are known to the system. If a |driver_filter| is provided, the returned list will be filtered to only include drivers specified in the filter.

|iterator| is closed with following epitaphs on error: ZX_ERR_NOT_FOUND indicates that there is no driver matching the given path for at least one driver in |driver_filter|. ZX_ERR_BUFFER_TOO_SMALL indicates that the driver's bind program is longer than the maximum number of instructions (BIND_PROGRAM_INSTRUCTIONS_MAX).

Request

NameType
driver_filter vector<string>
iterator request<DriverInfoIterator>

DriverInfoIterator

Defined in fuchsia.driver.development/development.fidl

GetNext

Return 0 drivers when no more entries left.

Request

<EMPTY>

Response

NameType
drivers vector<DriverInfo>

STRUCTS

DriverDevelopment_RestartDriverHosts_Response

Defined in fuchsia.driver.development/development.fidl

<EMPTY>

TABLES

DeviceInfo

Defined in fuchsia.driver.development/development.fidl

OrdinalFieldTypeDescription
1 id uint64

Unique ID identifying the device.

2 parent_ids vector<uint64>

List of ids representing parents. If more than one, this device is a composite device node.

3 child_ids vector<uint64>

List of ids representing children.

4 driver_host_koid zx/koid

The process KOID of the driver host the driver resides within.

5 topological_path string[1024]

The topological path of the driver. Once drivers are components, this will also be the collection relative moniker.

6 bound_driver_libname string[1024]

Path to the driver shared library.

7 bound_driver_url string[4096]
8 property_list fuchsia.device.manager/DevicePropertyList
9 flags DeviceFlags

DriverInfo

Defined in fuchsia.driver.development/development.fidl

OrdinalFieldTypeDescription
1 libname string[1024]

Path to the driver shared library.

2 name string

Name of the driver, taken from the first field of the ZIRCON_DRIVER macro in the driver.

3 url string[4096]

URL of the driver component's manifest. This will only be populated if the driver is a component.

4 bind_rules BindRulesBytecode

Bind rules which declare set of constraints to evaluate in order to determine whether the driver indexer should bind this driver to a device.

UNIONS

BindRulesBytecode strict

Defined in fuchsia.driver.development/development.fidl

Ordinal
VariantTypeDescription
1 bytecode_v1 vector<fuchsia.device.manager/BindInstruction>[256]

Bind rules in the old bytecode format.

2 bytecode_v2 vector<uint8>

Bind rules in the new bytecode format.

DriverDevelopment_RestartDriverHosts_Result strict

Defined in fuchsia.driver.development/development.fidl

Ordinal
VariantTypeDescription
1 response DriverDevelopment_RestartDriverHosts_Response
2 err zx/status

BITS

DeviceFlags strict

Type: uint32

Defined in fuchsia.driver.development/development.fidl

NameValueDescription
IMMORTAL 1
MUST_ISOLATE 2

This device requires that children are created in a new driver_host attached to a proxy device

MULTI_BIND 4

This device may be bound multiple times

BOUND 8

This device is bound and not eligible for binding again until unbound. Not allowed on MULTI_BIND ctx.

DEAD 16

Device has been remove()'d

ALLOW_MULTI_COMPOSITE 32

This device is a fragment of a composite device and can be part of multiple composite devices.

PROXY 64

Device is a proxy -- its "parent" is the device it's a proxy to.

INVISIBLE 128

Device is not visible in devfs or bindable. Devices may be created in this state, but may not return to this state once made visible.

SKIP_AUTOBIND 256

Device should not go through auto-bind process.