fuchsia.usb.policy

fuchsia.usb.policy 介面提供機制,讓用戶端查詢及監控 USB 裝置和 USB 子系統的整體狀態,不受基礎硬體驅動程式庫程式實作影響。

新增:HEAD

通訊協定

設定

定義於 fuchsia.usb.policy/policy.fidl

用於查詢及動態重新設定 USB 週邊裝置功能的通訊協定。

可讓政策管理工具和系統指令列工具檢查使用中的 USB 週邊裝置設定,並在執行階段重新設定週邊裝置函式堆疊。

ConnectCable

在先前的 DisconnectCable 呼叫後,透過 USB 電源偵錯服務重新連接 Type-C 連接埠 CC 線路,並取消任何待處理的自動重新連線警報。

要求

<EMPTY>

回應

名稱類型
payload Configuration_ConnectCable_Result

DisconnectCable

透過 USB 電源偵錯服務中斷 Type-C 連接埠 CC 線路,模擬拔除實體傳輸線。如果 duration 為正值,系統會使用永久 USB 政策服務中的硬體喚醒鬧鐘,在 duration 後安排自動重新連接 Type-C 傳輸線,這樣即使 USB 連結中斷時呼叫 CLI 工作階段終止,重新連接仍會完成。

要求

名稱類型
duration zx/Duration

回應

名稱類型
payload Configuration_DisconnectCable_Result

GetConfiguration

擷取目前的 USB 裝置描述元和有效設定描述元。

錯誤

  • ZX_ERR_NOT_SUPPORTED:目標硬體不支援周邊功能查詢。

要求

<EMPTY>

回應

名稱類型
payload Configuration_GetConfiguration_Result

SetConfiguration

設定並啟用新的 USB 週邊裝置功能設定。

系統會先拆除先前的周邊函式堆疊,再初始化及繫結新指定的函式。周邊控制器和基礎函式驅動程式註冊完畢並準備就緒後,呼叫就會完成。

錯誤

  • ZX_ERR_INVALID_ARGS:設定參數無效。
  • ZX_ERR_ALREADY_BOUND:現有的周邊設定已鎖定或正在轉換。
  • ZX_ERR_NOT_SUPPORTED:不支援同時使用要求的功能組合。

要求

名稱類型
device_desc fuchsia.hardware.usb.peripheral/DeviceDescriptor
config_descriptors vector<fuchsia.hardware.usb.peripheral/ConfigurationDescriptor>:5

回應

名稱類型
payload Configuration_SetConfiguration_Result

健康度

定義於 fuchsia.usb.policy/policy.fidl

從 USB 系統擷取診斷和健康資訊的通訊協定。

GetReport

傳回目前 USB 健康狀態和裝置狀態的快照。

要求

<EMPTY>

回應

名稱類型
payload Health_GetReport_Result

PolicyProvider

定義於 fuchsia.usb.policy/policy.fidl

監控 USB 裝置狀態動態變更的介面。

WatchDeviceState

透過掛起 GET 要求,通知用戶端裝置狀態值已更新。第一次呼叫時,系統會立即傳回目前狀態。後續呼叫會暫停,直到有變更需要回報為止。傳回含有更新後裝置狀態的表格。

要求

<EMPTY>

回應

名稱類型
payload fuchsia.hardware.usb.policy/DeviceStateWatcher_WatchDeviceState_Result

STRUCTS

Configuration_ConnectCable_Response

定義於 fuchsia.usb.policy/policy.fidl

<EMPTY>

Configuration_DisconnectCable_Response

定義於 fuchsia.usb.policy/policy.fidl

<EMPTY>

Configuration_GetConfiguration_Response

定義於 fuchsia.usb.policy/policy.fidl

欄位類型說明預設
device_desc fuchsia.hardware.usb.peripheral/DeviceDescriptor 無預設值
config_descriptors vector<fuchsia.hardware.usb.peripheral/ConfigurationDescriptor>:5 無預設值

Configuration_SetConfiguration_Response

定義於 fuchsia.usb.policy/policy.fidl

<EMPTY>

列舉

CableStatus flexible

類型:uint32

定義於 fuchsia.usb.policy/policy.fidl

實體 USB 傳輸線連線狀態。

名稱值說明
0
1

FunctionStatus 彈性

類型:uint32

定義於 fuchsia.usb.policy/policy.fidl

USB 函式驅動程式庫或連線的健康狀態。

名稱值說明
0
1
2
3

TABLES

AdbHealth

定義於 fuchsia.usb.policy/policy.fidl

USB ADB 函式子系統的健康狀態資訊。

序數欄位類型說明
status FunctionStatus

說明 ADB 功能的高階政策和設定狀態。

details string:128

提供其他診斷詳細資料或狀態說明。

online bool

指出基礎 ADB Daemon 連線和傳輸是否處於線上狀態,並與主機通訊。與 status == CONNECTED (表示 USB 週邊裝置函式描述元已設定並繫結) 相反,online 表示端對端 ADB 傳輸已啟用。

driver_state string:32

說明 ADB 函式驅動程式庫回報的執行階段執行狀態 (例如「kAwaitingUsbConnection」、「kOnline」、「kStoppingForReconnect」、「kStoppingForUnbind」)。

CdcEthernetHealth

定義於 fuchsia.usb.policy/policy.fidl

USB CDC 乙太網路功能子系統的健康狀態資訊。

序數欄位類型說明
status FunctionStatus

說明 CDC 乙太網路功能的高階政策和設定狀態。

details string:128

提供其他診斷詳細資料或狀態說明。

online bool

指出基礎乙太網路介面和連結是否處於線上狀態,並準備好處理網路流量。與 status == CONNECTED (表示 USB CDC 介面已在匯流排上設定) 相反,online 表示連結狀態為啟動。

HealthReport

定義於 fuchsia.usb.policy/policy.fidl

USB 控制器目前狀態和健康情況的快照。

序數欄位類型說明
state fuchsia.hardware.usb.policy/DeviceState

說明裝置目前的狀態,如 USB 2.0 規格所定義。

address uint8

指派給 USB 裝置的位址。

cable_status CableStatus

指出是否已連接 USB 實體傳輸線 / VBUS ([CableStatus])。

adb AdbHealth

說明 ADB 函式子系統 ([AdbHealth]) 的健康狀態。

cdc_ethernet CdcEthernetHealth

說明 CDC 乙太網路功能子系統 ([CdcEthernetHealth]) 的健康狀態。

vsock VsockHealth

說明 VSOCK 函式子系統 ([VsockHealth]) 的健康狀態。

VsockHealth

定義於 fuchsia.usb.policy/policy.fidl

USB VSOCK 函式子系統的健康狀態資訊。

序數欄位類型說明
status FunctionStatus

說明 VSOCK 函式的高階政策和設定狀態。

active_channels uint32

目前有效或開啟的多工 VSOCK 通訊端管道數量。如果函式驅動程式庫不支援或無法辨識,這個欄位就不會顯示 (None)。

details string:128

提供其他診斷詳細資料或狀態說明。

online bool

指出基礎 VSOCK 傳輸驅動程式庫是否已上線,並準備好處理流量。與 status == CONNECTED (表示 USB 函式已在匯流排上設定) 相反,online 表示 VSOCK 服務已繫結,並準備好接受連線。

driver_state string:32

說明 VSOCK 函式驅動程式回報的執行階段執行狀態 (例如「未設定」、「執行中」)。

UNIONS

Configuration_ConnectCable_Result strict

定義於 fuchsia.usb.policy/policy.fidl

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

Configuration_DisconnectCable_Result strict

定義於 fuchsia.usb.policy/policy.fidl

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

Configuration_GetConfiguration_Result strict

定義於 fuchsia.usb.policy/policy.fidl

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

Configuration_SetConfiguration_Result strict

定義於 fuchsia.usb.policy/policy.fidl

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

Health_GetReport_Result strict

定義於 fuchsia.usb.policy/policy.fidl

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

常數

名稱值類型說明
MAX_DETAILS_LENGTH 128 uint32