通訊協定
管理員
如 fuchsia.hardware.power.statecontrol/admin.fidl
提供要求系統轉換為支援的電源狀態的方法。
請注意 (請參閱 https://fxbug.dev/42136295):這些方法必須等到狀態轉換完成後才會傳回。在大多數情況下 (例如重新啟動),成功轉換表示呼叫端並未實際觀察到完成工作,因為系統會在呼叫完成前重新啟動。這項規定的影響在於,如果將這些方法搭配同步 FIDL 用戶端使用,會導致在呼叫期間,甚至元件的剩餘生命週期 (例如重新啟動時) 產生封鎖的執行緒。因此,如果要將同步 FIDL 用戶端與此通訊協定搭配使用,應謹慎處理,以避免在啟動轉換時使用的相同執行緒上處理任何關機回呼。回呼範例包括 fuchsia.process.lifecycle/Lifecycle.Stop 和 fuchsia.hardware.power.statecontrol/RebootMethodsWatcher.OnReboot。或者,呼叫端可以選擇使用這個通訊協定搭配非同步 FIDL 用戶端,避免封鎖呼叫執行緒。
經理
執行核心 mexec。
zx_system_mexec_payload_get() 指定的 ZBI 項目可能尚未附加到提供的資料 ZBI 中。
要求
| 名稱 | 類型 | 
|---|---|
| kernel_zbi | handle<vmo> | 
| data_zbi | handle<vmo> | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_Mexec_Result | 
PowerFullyOn
要求裝置進入完全開啟狀態。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_PowerFullyOn_Result | 
電源關閉
要求所有裝置進入關機狀態。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_Poweroff_Result | 
Reboot
要求裝置重新啟動。
要求
| 名稱 | 類型 | 
|---|---|
| reason | RebootReason | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_Reboot_Result | 
RebootToBootloader
要求裝置重新啟動並進入系統啟動載入程式。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_RebootToBootloader_Result | 
RebootToRecovery
要求裝置重新啟動進入復原分區。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_RebootToRecovery_Result | 
SuspendToRam
要求裝置進入 RAM (S3) 電源狀態。目前僅支援 x64。如果已進行系統狀態轉換,系統會傳回 ZX_ERR_ALREADY_EXISTS。如果裝置無法達到暫停電源狀態,系統會傳回 ZX_ERR_INTERNAL。如果裝置成功暫停,系統會在裝置恢復時傳回 ZX_OK。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Admin_SuspendToRam_Result | 
RebootMethodsWatcher
如 fuchsia.hardware.power.statecontrol/admin.fidl
允許在呼叫重新啟動相關方法時通知元件。系統會把監看的「MAX_REBOOT_WATCHER_response_TIME_SECONDS」設為返回,否則系統電源狀態變更前。系統會透過該頻道傳送通知給監看程式。一旦觀察器回應或逾時到期,重新啟動的用戶管道就會由 RestartMethodsWatcher 的用戶端關閉。
OnReboot
要求
| 名稱 | 類型 | 
|---|---|
| reason | RebootReason | 
回應
<EMPTY>
RebootMethodsWatcherRegister
如 fuchsia.hardware.power.statecontrol/admin.fidl
允許元件註冊要在呼叫重新啟動方法時執行的回呼。這個通訊協定的主要用途是追蹤重新啟動原因。如果您正在查看這個通訊協定,請考慮依賴元件架構的排序關閉。
註冊
註冊看守工具,以便在呼叫重新啟動方法時收到通知。註冊管道最多只會使用一次,向觀察者通知即將重新啟動,並給予回應的機會。
觀看者可以關閉基礎管道來取消註冊。
要求
| 名稱 | 類型 | 
|---|---|
| watcher | RebootMethodsWatcher | 
RegisterWithAck
註冊看守工具,以便在呼叫重新啟動方法時收到通知。
系統向伺服器成功註冊看守工具後,要求將會完成,且 RestartMethodsWatcherRegister 管道會保持開啟狀態 (但用戶端目前可自行關閉)。
如果註冊看守工具時發生錯誤,則 RestartMethodsWatcherRegister 管道會在不完成要求的情況下關閉。
提供的 watcher 管道最多只會使用一次,通知監看系統即將重新啟動,並給予回應機會。
觀看者可以關閉「RebootMethodsWatcher」管道來取消註冊。
要求
| 名稱 | 類型 | 
|---|---|
| watcher | RebootMethodsWatcher | 
回應
<EMPTY>
結構化
Admin_Mexec_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_PowerFullyOn_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_Poweroff_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_RebootToBootloader_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_RebootToRecovery_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_Reboot_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
Admin_SuspendToRam_Response
定義於 fuchsia.hardware.power.statecontrol/admin.fidl
<EMPTY>
ENUMS
重新啟動原因嚴格
類型:uint32
如 fuchsia.hardware.power.statecontrol/reboot_reason.fidl
為什麼系統重新啟動。
| 名稱 | 值 | 說明 | 
|---|---|---|
| USER_REQUEST | 1 | |
| SYSTEM_UPDATE | 2 | 已下載新的系統更新。 | 
| RETRY_SYSTEM_UPDATE | 8 | 無法套用系統更新, | 
| HIGH_TEMPERATURE | 3 | |
| FACTORY_DATA_RESET | 6 | |
| SESSION_FAILURE | 4 | Sessionmgr 失敗。 | 
| SYSMGR_FAILURE | 5 | sysmgr 當機。 | 
| CRITICAL_COMPONENT_FAILURE | 7 | 重大系統元件失敗。 | 
| ZBI_SWAP | 9 | 已生效啟動分區變更。 | 
| OUT_OF_MEMORY | 10 | 系統可用記憶體的門檻過低。 | 
聯合國
Admin_Mexec_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_Mexec_Response | |
| 2 | err | zx/Status | 
Admin_PowerFullyOn_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_PowerFullyOn_Response | |
| 2 | err | zx/Status | 
Admin_Poweroff_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_Poweroff_Response | |
| 2 | err | zx/Status | 
Admin_RestartToBootloader_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_RebootToBootloader_Response | |
| 2 | err | zx/Status | 
Admin_RestartToRecovery_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_RebootToRecovery_Response | |
| 2 | err | zx/Status | 
Admin_Restart_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_Reboot_Response | |
| 2 | err | zx/Status | 
Admin_SuspendToRam_Result 嚴格
如 fuchsia.hardware.power.statecontrol/admin.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Admin_SuspendToRam_Response | |
| 2 | err | zx/Status | 
業者
| 名稱 | 值 | 類型 | 說明 | 
|---|---|---|---|
| MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS | 5 | uint32 | 伺服器在變更系統電源狀態前,等待所有 RestartMethodsWatchers 回應的秒數上限。 |