协议
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| 来撤消。
请求
| 名称 | 类型 |
|---|---|
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 整合。
请求
| 名称 | 类型 |
|---|---|
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 中定义
为目标子节点或复合节点指定自定义电源令牌替换。 在驱动程序重启操作期间使用,用于将默认电源拓扑令牌替换为模拟或测试电源令牌。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
target_node |
string:1024
|
应替换其电源令牌的目标节点的名称或名称。 |
无默认应用 |
token |
handle<event>
|
要与目标节点关联的自定义电源元素令牌事件句柄。 |
无默认应用 |
枚举
DispatcherState flexible
类型:uint32
在 fuchsia.driver.development/types.fidl 中定义
调度器的生命周期状态。
| 名称 | 值 | 说明 |
|---|---|---|
正在运行 |
1 |
|
SHUTTING_DOWN |
2 |
|
关机 |
3 |
|
已销毁 |
4 |
TABLES
CompositeNodeInfo
在 fuchsia.driver.development/types.fidl 中定义
包含复合节点的信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
parent_topological_paths |
vector<string?>
|
此复合节点的父节点的拓扑路径,按索引排序。 |
2 |
topological_path |
string
|
所创建复合节点的拓扑路径。如果未创建,则为空。 |
3 |
composite |
CompositeInfo
|
|
4 |
parent_monikers |
vector<string?>
|
此复合节点的父节点的别名,按索引排序。 |
5 |
moniker |
string:1024
|
所创建的复合节点的名称。如果未创建,则为空。 |
DispatcherDebugStats
在 fuchsia.driver.development/types.fidl 中定义
调度器的请求和内联统计信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
num_total_requests |
uint64
|
此调度程序处理的请求总数。 |
2 |
num_inlined_requests |
uint64
|
内嵌的请求数量。 |
3 |
non_inlined |
NonInlinedRequestStats
|
请求未内嵌的原因明细。 |
DispatcherInfo
在 fuchsia.driver.development/types.fidl 中定义
包含调度员的信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
driver |
fuchsia.url/Url
|
创建此调度程序的驱动程序。 |
2 |
name |
string
|
调度程序的名称。 |
3 |
options |
uint32
|
创建调度程序时使用的选项。 |
4 |
scheduler_role |
string
|
调度器的调度器角色。 |
5 |
dispatcher_ptr |
uint64
|
驱动程序宿主进程中调度程序的地址。 Added: HEAD
|
6 |
driver_ptr |
uint64
|
驱动程序宿主进程中驱动程序所有者的地址。 Added: HEAD
|
7 |
synchronized |
bool
|
调度程序是否已同步。 Added: HEAD
|
8 |
allow_sync_calls |
bool
|
调度程序是否允许阻塞同步调用。 Added: HEAD
|
9 |
state |
DispatcherState
|
调度器的当前生命周期状态。 Added: HEAD
|
10 |
destroy_context |
string
|
如果调用了 Added: HEAD
|
11 |
destroy_user_initiated |
bool
|
Added: HEAD
|
12 |
debug_stats |
DispatcherDebugStats
|
调度程序的请求和内联统计信息。 Added: HEAD
|
13 |
queued_tasks |
vector<QueuedTaskInfo>
|
调度程序上当前已加入队列的任务。 Added: HEAD
|
14 |
num_queued_tasks |
uint64
|
在任何截断之前,调度程序上已加入队列的任务总数。 Added: HEAD
|
DriverHostInfo
在 fuchsia.driver.development/types.fidl 中定义
包含驱动程序主机的信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
process_koid |
zx/Koid
|
驱动程序主机的进程 KOID。 |
2 |
threads |
vector<ThreadInfo>
|
驱动程序主机的线程列表。 |
3 |
drivers |
vector<fuchsia.url/Url>
|
加载到此驱动程序主机的驱动程序列表。 |
4 |
dispatchers |
vector<DispatcherInfo>
|
调度器列表。 |
5 |
name |
string
|
驱动程序主机的可选名称。 |
NodeBindingInfo
在 fuchsia.driver.development/types.fidl 中定义
有关节点绑定到驱动程序或复合节点的信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
node_name |
string:1024
|
节点的完整拓扑名称。 |
2 |
driver_url |
fuchsia.url/Url
|
这是绑定到节点的驱动程序的组件网址。 如果此字段存在,则 |composite_parents| 不得存在。 |
3 |
composite_parents |
vector<fuchsia.driver.framework/CompositeParent>
|
此节点绑定到的复合父级。 如果存在此属性,则不得存在 |driver_url|。 |
NodeInfo
在 fuchsia.driver.development/types.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
id |
uint64
|
标识节点的唯一 ID。 |
2 |
parent_ids |
vector<uint64>
|
表示父级的 ID 列表。如果超过一个,则为复合节点。 |
3 |
child_ids |
vector<uint64>
|
表示子项的 ID 列表。 |
4 |
driver_host_koid |
zx/Koid
|
驱动程序所在的驱动程序主机的进程 KOID。 |
5 |
bound_driver_url |
fuchsia.url/Url
|
驱动程序组件清单的网址 |
7 |
moniker |
string:1024
|
节点的集合相对名字。 |
8 |
node_property_list |
fuchsia.driver.framework/NodeProperties
|
节点的属性。 |
9 |
offer_list |
vector<fuchsia.component.decl/Offer>
|
组件向节点提供的服务。 |
10 |
quarantined |
bool
|
节点是否处于隔离状态。也就是说,|bound_driver_url| 无法启动,并且节点不再运行其驱动程序实例。 |
11 |
bus_topology |
vector<fuchsia.driver.framework/BusInfo>:20
|
有关节点总线拓扑的信息。 |
12 |
topological_path |
string:1024
|
devfs 中节点的拓扑路径。 |
13 |
is_running |
bool
|
绑定到此节点的驱动程序是否已完成启动并正在运行。 Added: HEAD
|
NonInlinedRequestStats
在 fuchsia.driver.development/types.fidl 中定义
驱动程序运行时未内嵌请求的原因细分。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
allow_sync_calls |
uint64
|
从非阻塞调度程序调用阻塞 ( |
2 |
parallel_dispatch |
uint64
|
另一个线程已在分派请求。 |
3 |
task |
uint64
|
该请求是一项任务。 |
4 |
unknown_thread |
uint64
|
请求已从未知线程排队。 |
5 |
reentrant |
uint64
|
该请求本应是可重入的。 |
6 |
channel_wait_not_yet_registered |
uint64
|
收到消息时,通道等待尚未注册。 |
7 |
no_thread_migration |
uint64
|
调用了不允许迁移线程的调度程序。 |
QueuedTaskInfo
在 fuchsia.driver.development/types.fidl 中定义
在调度程序上排队的任务的诊断信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
ptr |
uint64
|
已加入队列的 |
2 |
handler |
uint64
|
任务处理函数地址。 |
3 |
initiating_dispatcher |
uint64
|
将此任务加入队列的分发器的地址(如果从运行时线程加入队列)。 |
4 |
initiating_dispatcher_name |
string
|
将此任务加入队列的调度程序的名称(如果已知)。 |
5 |
initiating_driver |
uint64
|
将此任务加入队列的驱动程序的地址(如果从运行时线程加入队列)。 |
6 |
initiating_driver_url |
fuchsia.url/Url
|
将此任务加入队列的驱动程序的网址(如果已知)。 |
TestNodeAddArgs
在 fuchsia.driver.development/types.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
name |
string:1024
|
节点的名称。 |
2 |
properties |
fuchsia.driver.framework/NodeProperties
|
节点的属性。 Added: HEAD
|
ThreadInfo
在 fuchsia.driver.development/types.fidl 中定义
包含会话的信息。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
koid |
zx/Koid
|
线程的 koid。 |
2 |
name |
string
|
线程的名称。 |
3 |
scheduler_role |
string
|
线程的调度器角色。 |
UNIONS
CompositeInfo strict
在 fuchsia.driver.development/types.fidl 中定义
包含复合信息。
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
2 |
composite |
fuchsia.driver.framework/CompositeInfo
|
Manager_AddTestNode_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_AddTestNode_Response
|
|
2 |
err |
fuchsia.driver.framework/NodeError
|
|
3 |
framework_err |
internal
|
Manager_BindAllUnboundNodes2_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_BindAllUnboundNodes2_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_BindAllUnboundNodes_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_BindAllUnboundNodes_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_DisableDriver_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_DisableDriver_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_EnableDriver_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_EnableDriver_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_RebindCompositesWithDriver_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_RebindCompositesWithDriver_Response
|
|
2 |
err |
zx/Status
|
Manager_RemoveTestNode_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_RemoveTestNode_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_RestartDriverHosts_Result strict
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_RestartDriverHosts_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Manager_RestartWithDictionaryAndPowerDependencies_Result strict resource
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_RestartWithDictionaryAndPowerDependencies_Response
|
|
2 |
err |
zx/Status
|
Manager_RestartWithDictionary_Result strict resource
在 fuchsia.driver.development/development.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Manager_RestartWithDictionary_Response
|
|
2 |
err |
zx/Status
|
BITS
RestartRematchFlags flexible
类型:uint32
在 fuchsia.driver.development/types.fidl 中定义
这些标志指示何时应为正在重启的节点发出 |fuchsia.driver.index.DriverIndex::MatchDriver| 调用,以便找到新驱动程序,而不是重复使用之前绑定到该节点的驱动程序。
| 名称 | 值 | 说明 |
|---|---|---|
请求 |
1 | 重新匹配当前绑定到所请求驱动程序的节点。请求的驱动程序是为其启动重启操作的驱动程序网址。 |
NON_REQUESTED |
2 | 重新匹配当前绑定到请求的驱动程序以外的驱动程序的节点。这些节点会受到所请求驱动程序重启的影响,例如,当它是共置父级时。 |
COMPOSITE_SPEC |
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
|