fuchsia.driver.development

Added: HEAD

协议

CompositeInfoIterator

在 fuchsia.driver.development/iterators.fidl 中定义

用于对 CompositeList 进行分页。

GetNext

一次最多返回 100 个条目。当没有更多复合项时,返回空。

请求

<EMPTY>

响应

名称类型
composites vector<CompositeNodeInfo>

CompositeNodeSpecIterator

在 fuchsia.driver.development/iterators.fidl 中定义

GetNext

当没有更多节点组时,返回空。

请求

<EMPTY>

响应

名称类型
specs vector<fuchsia.driver.framework/CompositeInfo>

DriverHostInfoIterator

在 fuchsia.driver.development/iterators.fidl 中定义

GetNext

当没有更多条目时,返回空。

请求

<EMPTY>

响应

名称类型
driver_hosts vector<DriverHostInfo>

DriverInfoIterator

在 fuchsia.driver.development/iterators.fidl 中定义

GetNext

当没有更多条目时,返回空。

请求

<EMPTY>

响应

名称类型
drivers vector<fuchsia.driver.framework/DriverInfo>

管理员

在 fuchsia.driver.development/development.fidl 中定义

驱动程序开发管理器的接口。 此接口应仅用于开发,并在发布 build 中停用。

AddTestNode

在根节点下添加测试节点。

请求

名称类型
args TestNodeAddArgs

响应

名称类型
payload Manager_AddTestNode_Result

BindAllUnboundNodes

尝试绑定拓扑中所有未绑定的节点。 返回新的成功绑定。

请求

<EMPTY>

响应

名称类型
payload Manager_BindAllUnboundNodes_Result

BindAllUnboundNodes2

尝试绑定拓扑中所有未绑定的节点。 返回新的成功绑定。

请求

<EMPTY>

响应

名称类型
payload Manager_BindAllUnboundNodes2_Result

DisableDriver

停用具有给定驱动程序组件网址的驱动程序。 系统不会考虑将已停用的驱动程序与节点进行匹配。 如果提供了 |package_hash|,则只有该特定版本的驱动程序包会被停用。否则,此操作将应用于具有给定网址的驱动程序的所有现有版本。 如果没有任何驱动程序受到影响,则返回错误 ZX_ERR_NOT_FOUND。

请求

名称类型
driver_url fuchsia.url/Url
package_hash string:64?

响应

名称类型
payload Manager_DisableDriver_Result

EnableDriver

启用具有给定驱动程序组件网址的驱动程序。 此操作仅用于还原 |DisableDriver| 操作。 如果没有任何驱动程序受到影响,则返回错误 ZX_ERR_NOT_FOUND。

请求

名称类型
driver_url fuchsia.url/Url
package_hash string:64?

响应

名称类型
payload Manager_EnableDriver_Result

GetCompositeInfo

返回系统中的复合体列表。这包括尚未组装并添加到节点拓扑中的复合材料。

请求

名称类型
iterator server_end:CompositeInfoIterator

GetCompositeNodeSpecs

返回系统已知的所有复合节点规范的列表。 如果提供了 |name_filter|,则返回的列表将仅包含 1 个规范,即具有该确切名称的规范。

|iterator| 已关闭,并显示以下错误: ZX_ERR_NOT_FOUND 表示没有规范,或者如果提供了 |name_filter|,则表示没有具有该名称的规范。

请求

名称类型
name_filter string?
iterator server_end:CompositeNodeSpecIterator

GetDriverHostInfo

返回系统已知的所有驱动程序主机的列表。

请求

名称类型
iterator server_end:DriverHostInfoIterator

GetDriverInfo

返回系统已知的所有驱动程序的列表。 如果提供了 |driver_filter|,系统会过滤返回的列表,使其仅包含过滤条件中指定的驱动程序。

|iterator| 关闭,并显示以下错误墓志铭: ZX_ERR_NOT_FOUND 表示 |driver_filter| 中至少有一个驱动程序没有与给定路径匹配的驱动程序。 ZX_ERR_BUFFER_TOO_SMALL 表示驱动程序的绑定程序长度超过了最大指令数 (BIND_PROGRAM_INSTRUCTIONS_MAX)。

请求

名称类型
driver_filter vector<string>
iterator server_end:DriverInfoIterator

GetNodeInfo

返回系统上运行的节点列表。

如果提供了 |node_filter|,则返回的列表将被过滤,仅包含过滤条件中指定的节点。如果 |exact_match| 为 true,则过滤器必须与节点的拓扑路径完全匹配;否则,它会执行子字符串匹配。如果没有节点与过滤条件匹配,则列表将为空。

|iterator| 在出错时会关闭,并显示以下墓志铭: ZX_ERR_BAD_PATH 表示给定路径无效。 ZX_ERR_BUFFER_TOO_SMALL 表示给定路径过长,或者节点的属性数量超过了上限 (PROPERTIES_MAX)。

请求

名称类型
node_filter vector<string>
iterator server_end:NodeInfoIterator
exact_match bool

RebindCompositesWithDriver

重新绑定具有给定 driver_url 的所有复合和复合规范。这意味着,该规范会重新匹配,可能会匹配到其他驱动程序,或者如果唯一匹配的驱动程序已停用,则不会匹配到任何驱动程序,并且根据此规范创建的所有活跃节点都会被移除并重新绑定。

返回受影响的复合节点数量。

请求

名称类型
driver_url fuchsia.url/Url

响应

名称类型
payload Manager_RebindCompositesWithDriver_Result

RemoveTestNode

移除测试节点。节点是以异步方式移除的,不保证在返回时已被移除。

请求

名称类型
name string:1024

响应

名称类型
payload Manager_RemoveTestNode_Result

RestartDriverHosts

重启包含由 driver_url 指定的驱动程序的所有驱动程序主机,并返回已重启的驱动程序主机数量。|rematch_flags| 将用于决定哪些重启节点应绑定现有驱动程序,哪些重启节点应再次执行匹配过程。

请求

名称类型
driver_url fuchsia.url/Url
rematch_flags RestartRematchFlags

响应

名称类型
payload Manager_RestartDriverHosts_Result

RestartWithDictionary

重启绑定到 |node_ids| 中标识的节点的驱动程序组件,并向其提供给定的字典。所有子节点也会重启,并获得此字典。此操作是临时的,可通过释放返回的 |release_fence| 来撤消。

Added: HEAD

请求

名称类型
moniker string:1024
dictionary fuchsia.component.sandbox/DictionaryRef

响应

名称类型
payload Manager_RestartWithDictionary_Result

RestartWithDictionaryAndPowerDependencies

重启绑定到由 |moniker| 标识的节点的驱动程序组件,并为其提供给定的字典和电源依赖项。 所有子节点也会重启并获得字典,但只有由 |moniker| 标识的节点才会获得电源依赖项。如果电源依赖项向量为空,则驱动程序的电源元素除了对 CPU 的依赖项之外,没有任何其他依赖项。|cpu_token_override| 将用作在 CPU 电源元素上建立依赖关系的令牌。此替换会一直对所有重启的驱动程序生效,直到栅栏被释放。

此调用的效果是暂时的,可通过释放返回的 |release_fence| 来撤消。 TODO(https://fxbug.dev/494673577) 将此 API 与 RestartWithDictionary 整合。

Added: HEAD

请求

名称类型
moniker string:1024
dictionary fuchsia.component.sandbox/DictionaryRef
power_dependencies vector<fuchsia.power.broker/LevelDependency>:128
cpu_token_override handle<event>?
node_power_token_overrides vector<NodePowerTokenOverride>:16

响应

名称类型
payload Manager_RestartWithDictionaryAndPowerDependencies_Result

WaitForBootup

等待启动完成。

请求

<EMPTY>

响应

<EMPTY>

NodeInfoIterator

在 fuchsia.driver.development/iterators.fidl 中定义

GetNext

当没有更多条目时,返回空。

请求

<EMPTY>

响应

名称类型
nodes vector<NodeInfo>

STRUCTS

Manager_AddTestNode_Response

在 fuchsia.driver.development/development.fidl 中定义

<EMPTY>

Manager_BindAllUnboundNodes2_Response

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
binding_result vector<NodeBindingInfo>:256

因此而发生的新绑定列表。

无默认应用

Manager_BindAllUnboundNodes_Response

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
binding_result vector<NodeBindingInfo>:10

因此而发生的新绑定列表。

无默认应用

Manager_DisableDriver_Response

在 fuchsia.driver.development/development.fidl 中定义

<EMPTY>

Manager_EnableDriver_Response

在 fuchsia.driver.development/development.fidl 中定义

<EMPTY>

Manager_RebindCompositesWithDriver_Response

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
count uint32 无默认应用

Manager_RemoveTestNode_Response

在 fuchsia.driver.development/development.fidl 中定义

<EMPTY>

Manager_RestartDriverHosts_Response

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
count uint32 无默认应用

Manager_RestartWithDictionaryAndPowerDependencies_Response 资源

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
release_fence handle<eventpair>

当需要修改后的驱动程序时,调用方应使此句柄保持活跃状态。 松开此按钮将重置操作。

无默认应用

Manager_RestartWithDictionary_Response resource

在 fuchsia.driver.development/development.fidl 中定义

字段类型说明默认
release_fence handle<eventpair>

当需要修改后的驱动程序时,调用方应使此句柄保持活跃状态。 松开此按钮将重置操作。

无默认应用

NodePowerTokenOverride 资源

在 fuchsia.driver.development/development.fidl 中定义

为目标子节点或复合节点指定自定义电源令牌替换。 在驱动程序重启操作期间使用,用于将默认电源拓扑令牌替换为模拟或测试电源令牌。

Added: HEAD

字段类型说明默认
target_node string:1024

应替换其电源令牌的目标节点的名称或名称。

无默认应用
token handle<event>

要与目标节点关联的自定义电源元素令牌事件句柄。

无默认应用

枚举

DispatcherState flexible

类型:uint32

在 fuchsia.driver.development/types.fidl 中定义

调度器的生命周期状态。

Added: HEAD

名称值说明
1
2
3
4

TABLES

CompositeNodeInfo

在 fuchsia.driver.development/types.fidl 中定义

包含复合节点的信息。

序数字段类型说明
parent_topological_paths vector<string?>

此复合节点的父节点的拓扑路径,按索引排序。

topological_path string

所创建复合节点的拓扑路径。如果未创建,则为空。

composite CompositeInfo
parent_monikers vector<string?>

此复合节点的父节点的别名,按索引排序。

moniker string:1024

所创建的复合节点的名称。如果未创建,则为空。

DispatcherDebugStats

在 fuchsia.driver.development/types.fidl 中定义

调度器的请求和内联统计信息。

Added: HEAD

序数字段类型说明
num_total_requests uint64

此调度程序处理的请求总数。

num_inlined_requests uint64

内嵌的请求数量。

non_inlined NonInlinedRequestStats

请求未内嵌的原因明细。

DispatcherInfo

在 fuchsia.driver.development/types.fidl 中定义

包含调度员的信息。

序数字段类型说明
driver fuchsia.url/Url

创建此调度程序的驱动程序。

name string

调度程序的名称。

options uint32

创建调度程序时使用的选项。

scheduler_role string

调度器的调度器角色。

dispatcher_ptr uint64

驱动程序宿主进程中调度程序的地址。

Added: HEAD
driver_ptr uint64

驱动程序宿主进程中驱动程序所有者的地址。

Added: HEAD
synchronized bool

调度程序是否已同步。

Added: HEAD
allow_sync_calls bool

调度程序是否允许阻塞同步调用。

Added: HEAD
state DispatcherState

调度器的当前生命周期状态。

Added: HEAD
destroy_context string

如果调用了 Destroy,则为发起销毁的调度程序的名称。

Added: HEAD
destroy_user_initiated bool

Destroy 是由用户发起 (true) 还是由环境发起 (false)。

Added: HEAD
debug_stats DispatcherDebugStats

调度程序的请求和内联统计信息。

Added: HEAD
queued_tasks vector<QueuedTaskInfo>

调度程序上当前已加入队列的任务。

Added: HEAD
num_queued_tasks uint64

在任何截断之前,调度程序上已加入队列的任务总数。

Added: HEAD

DriverHostInfo

在 fuchsia.driver.development/types.fidl 中定义

包含驱动程序主机的信息。

序数字段类型说明
process_koid zx/Koid

驱动程序主机的进程 KOID。

threads vector<ThreadInfo>

驱动程序主机的线程列表。

drivers vector<fuchsia.url/Url>

加载到此驱动程序主机的驱动程序列表。

dispatchers vector<DispatcherInfo>

调度器列表。

name string

驱动程序主机的可选名称。

NodeBindingInfo

在 fuchsia.driver.development/types.fidl 中定义

有关节点绑定到驱动程序或复合节点的信息。

序数字段类型说明
node_name string:1024

节点的完整拓扑名称。

driver_url fuchsia.url/Url

这是绑定到节点的驱动程序的组件网址。 如果此字段存在,则 |composite_parents| 不得存在。

composite_parents vector<fuchsia.driver.framework/CompositeParent>

此节点绑定到的复合父级。 如果存在此属性,则不得存在 |driver_url|。

NodeInfo

在 fuchsia.driver.development/types.fidl 中定义

序数字段类型说明
id uint64

标识节点的唯一 ID。

parent_ids vector<uint64>

表示父级的 ID 列表。如果超过一个,则为复合节点。

child_ids vector<uint64>

表示子项的 ID 列表。

driver_host_koid zx/Koid

驱动程序所在的驱动程序主机的进程 KOID。

bound_driver_url fuchsia.url/Url

驱动程序组件清单的网址

moniker string:1024

节点的集合相对名字。

node_property_list fuchsia.driver.framework/NodeProperties

节点的属性。

offer_list vector<fuchsia.component.decl/Offer>

组件向节点提供的服务。

quarantined bool

节点是否处于隔离状态。也就是说,|bound_driver_url| 无法启动,并且节点不再运行其驱动程序实例。

bus_topology vector<fuchsia.driver.framework/BusInfo>:20

有关节点总线拓扑的信息。

topological_path string:1024

devfs 中节点的拓扑路径。

is_running bool

绑定到此节点的驱动程序是否已完成启动并正在运行。

Added: HEAD

NonInlinedRequestStats

在 fuchsia.driver.development/types.fidl 中定义

驱动程序运行时未内嵌请求的原因细分。

Added: HEAD

序数字段类型说明
allow_sync_calls uint64

从非阻塞调度程序调用阻塞 (ALLOW_SYNC_CALLS) 调度程序。

parallel_dispatch uint64

另一个线程已在分派请求。

task uint64

该请求是一项任务。

unknown_thread uint64

请求已从未知线程排队。

reentrant uint64

该请求本应是可重入的。

channel_wait_not_yet_registered uint64

收到消息时,通道等待尚未注册。

no_thread_migration uint64

调用了不允许迁移线程的调度程序。

QueuedTaskInfo

在 fuchsia.driver.development/types.fidl 中定义

在调度程序上排队的任务的诊断信息。

Added: HEAD

序数字段类型说明
ptr uint64

已加入队列的 async_task_t 的地址。

handler uint64

任务处理函数地址。

initiating_dispatcher uint64

将此任务加入队列的分发器的地址(如果从运行时线程加入队列)。

initiating_dispatcher_name string

将此任务加入队列的调度程序的名称(如果已知)。

initiating_driver uint64

将此任务加入队列的驱动程序的地址(如果从运行时线程加入队列)。

initiating_driver_url fuchsia.url/Url

将此任务加入队列的驱动程序的网址(如果已知)。

TestNodeAddArgs

在 fuchsia.driver.development/types.fidl 中定义

序数字段类型说明
name string:1024

节点的名称。

properties fuchsia.driver.framework/NodeProperties

节点的属性。

Added: HEAD

ThreadInfo

在 fuchsia.driver.development/types.fidl 中定义

包含会话的信息。

序数字段类型说明
koid zx/Koid

线程的 koid。

name string

线程的名称。

scheduler_role string

线程的调度器角色。

UNIONS

CompositeInfo strict

在 fuchsia.driver.development/types.fidl 中定义

包含复合信息。

序数变体类型说明
composite fuchsia.driver.framework/CompositeInfo

Manager_AddTestNode_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_AddTestNode_Response
err fuchsia.driver.framework/NodeError
framework_err internal

Manager_BindAllUnboundNodes2_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_BindAllUnboundNodes2_Response
err zx/Status
framework_err internal

Manager_BindAllUnboundNodes_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_BindAllUnboundNodes_Response
err zx/Status
framework_err internal

Manager_DisableDriver_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_DisableDriver_Response
err zx/Status
framework_err internal

Manager_EnableDriver_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_EnableDriver_Response
err zx/Status
framework_err internal

Manager_RebindCompositesWithDriver_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_RebindCompositesWithDriver_Response
err zx/Status

Manager_RemoveTestNode_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_RemoveTestNode_Response
err zx/Status
framework_err internal

Manager_RestartDriverHosts_Result strict

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_RestartDriverHosts_Response
err zx/Status
framework_err internal

Manager_RestartWithDictionaryAndPowerDependencies_Result strict resource

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_RestartWithDictionaryAndPowerDependencies_Response
err zx/Status

Manager_RestartWithDictionary_Result strict resource

在 fuchsia.driver.development/development.fidl 中定义

序数变体类型说明
response Manager_RestartWithDictionary_Response
err zx/Status

BITS

RestartRematchFlags flexible

类型:uint32

在 fuchsia.driver.development/types.fidl 中定义

这些标志指示何时应为正在重启的节点发出 |fuchsia.driver.index.DriverIndex::MatchDriver| 调用,以便找到新驱动程序,而不是重复使用之前绑定到该节点的驱动程序。

名称值说明
1

重新匹配当前绑定到所请求驱动程序的节点。请求的驱动程序是为其启动重启操作的驱动程序网址。

2

重新匹配当前绑定到请求的驱动程序以外的驱动程序的节点。这些节点会受到所请求驱动程序重启的影响,例如,当它是共置父级时。

8

重新匹配作为已完成的复合规范的一部分创建的节点。

常量

名称值类型说明
BINDING_RESULT_MAX 10 uint8
BINDING_RESULT_MAX_2 256 uint32
HASH_LENGTH 64 uint8
MAX_SEGMENTS 20 uint32
NODE_MONIKER_MAX 1024 uint32
POWER_TOKEN_OVERRIDES_MAX 16 uint8
Added: HEAD