fuchsia.driver.development

新增: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

驅動程式庫開發經理的介面。這個介面僅供開發使用,在發布子版本中應停用。

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| is closed with following epitaphs on error: ZX_ERR_NOT_FOUND indicates that there are no specs or if a |name_filter| is provided, that there are no specs with that name.

要求

名稱類型
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| 即可復原。

新增:HEAD

要求

名稱類型
moniker string:1024
dictionary fuchsia.component.sandbox/DictionaryRef

回應

名稱類型
payload Manager_RestartWithDictionary_Result

RestartWithDictionaryAndPowerDependencies

重新啟動繫結至 |路徑名稱| 所識別節點的驅動程式庫元件,並提供指定的字典和電源依附元件。所有子節點也會重新啟動,並提供字典,但只有 |路徑名稱| 識別的節點會提供電源依附元件。如果電源依附元件的向量為空,驅動程式庫的電源元素除了 CPU 依附元件外,不會有其他依附元件。|cpu_token_override| 將做為權杖,用於建立 CPU 功率元素的依附元件。在圍欄解除前,所有重新啟動的驅動程式都會維持這項覆寫設定。

這項呼叫的效果是暫時性的,釋出傳回的 |release_fence| 即可復原。TODO(https://fxbug.dev/494673577) Consolidate this API with RestartWithDictionary.

新增: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 resource

定義於 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

為指定的子節點或複合節點,指定自訂電源權杖覆寫。在驅動程式庫重新啟動作業期間,用於將預設電源拓撲權杖替換為模擬或測試電源權杖。

新增:HEAD

欄位類型說明預設
target_node string:1024

要覆寫電源權杖的目標節點名稱或路徑名稱。

無預設值
token handle<event>

與目標節點建立關聯的自訂電源元素權杖事件控制代碼。

無預設值

列舉

DispatcherState 彈性

類型:uint32

定義於 fuchsia.driver.development/types.fidl

調度工具的生命週期狀態。

新增: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

調度工具的要求和內嵌統計資料。

新增: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

驅動程式代管程序中調度工具的位址。

新增:HEAD
driver_ptr uint64

驅動程式代管程序中驅動程式庫擁有者的位址。

新增:HEAD
synchronized bool

調度器是否已同步。

新增:HEAD
allow_sync_calls bool

調度工具是否允許封鎖同步呼叫。

新增:HEAD
state DispatcherState

調度員目前的生命週期狀態。

新增:HEAD
destroy_context string

如果呼叫 Destroy,則為啟動刪除作業的調度工具名稱。

新增:HEAD
destroy_user_initiated bool

Destroy 是由使用者啟動 (true) 還是由環境啟動 (false)。

新增:HEAD
debug_stats DispatcherDebugStats

調度工具的要求和內嵌統計資料。

新增:HEAD
queued_tasks vector<QueuedTaskInfo>

調度工具中目前排入佇列的工作。

新增:HEAD
num_queued_tasks uint64

在任何截斷作業前,調度工具中排入佇列的工作總數。

新增: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

繫結至這個節點的驅動程式庫是否已完成啟動,且目前正在執行。

新增:HEAD

NonInlinedRequestStats

定義於 fuchsia.driver.development/types.fidl

要求未由驅動程式庫執行階段內嵌的原因細目。

新增: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

調度器上排入佇列工作的診斷資訊。

新增: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

節點的屬性。

新增:HEAD

ThreadInfo

定義於 fuchsia.driver.development/types.fidl

包含執行緒的資訊。

序數欄位類型說明
koid zx/Koid

執行緒的 koid。

name string

討論串名稱。

scheduler_role string

執行緒的排程器角色。

UNIONS

CompositeInfo strict

定義於 fuchsia.driver.development/types.fidl

包含複合項目的資訊。

序數Variant類型說明
composite fuchsia.driver.framework/CompositeInfo

Manager_AddTestNode_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_AddTestNode_Response
err fuchsia.driver.framework/NodeError
framework_err internal

Manager_BindAllUnboundNodes2_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_BindAllUnboundNodes2_Response
err zx/Status
framework_err internal

Manager_BindAllUnboundNodes_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_BindAllUnboundNodes_Response
err zx/Status
framework_err internal

Manager_DisableDriver_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_DisableDriver_Response
err zx/Status
framework_err internal

Manager_EnableDriver_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_EnableDriver_Response
err zx/Status
framework_err internal

Manager_RebindCompositesWithDriver_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_RebindCompositesWithDriver_Response
err zx/Status

Manager_RemoveTestNode_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_RemoveTestNode_Response
err zx/Status
framework_err internal

Manager_RestartDriverHosts_Result strict

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_RestartDriverHosts_Response
err zx/Status
framework_err internal

Manager_RestartWithDictionaryAndPowerDependencies_Result strict resource

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
response Manager_RestartWithDictionaryAndPowerDependencies_Response
err zx/Status

Manager_RestartWithDictionary_Result strict resource

定義於 fuchsia.driver.development/development.fidl

序數Variant類型說明
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
新增:HEAD