fuchsia.hardware.power.statecontrol

新增日期:7

通訊協定

管理員

fuchsia.hardware.power.statecontrol/admin.fidl

提供要求系統轉換為支援的電源狀態的方法。

請注意 (請參閱 https://fxbug.dev/42136295):這些方法必須等到狀態轉換完成後才會傳回。在大多數情況下 (例如重新啟動),成功轉換表示呼叫端並未實際觀察到完成工作,因為系統會在呼叫完成前重新啟動。這項規定的影響在於,如果將這些方法搭配同步 FIDL 用戶端使用,會導致在呼叫期間,甚至元件的剩餘生命週期 (例如重新啟動時) 產生封鎖的執行緒。因此,如果要將同步 FIDL 用戶端與此通訊協定搭配使用,應謹慎處理,以避免在啟動轉換時使用的相同執行緒上處理任何關機回呼。回呼範例包括 fuchsia.process.lifecycle/Lifecycle.Stopfuchsia.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

允許元件註冊要在呼叫重新啟動方法時執行的回呼。這個通訊協定的主要用途是追蹤重新啟動原因。如果您正在查看這個通訊協定,請考慮依賴元件架構的排序關閉。

註冊

註冊看守工具,以便在呼叫重新啟動方法時收到通知。註冊管道最多只會使用一次,向觀察者通知即將重新啟動,並給予回應的機會。

觀看者可以關閉基礎管道來取消註冊。

已淘汰:HEAD

要求

名稱類型
watcher RebootMethodsWatcher

RegisterWithAck

註冊看守工具,以便在呼叫重新啟動方法時收到通知。

系統向伺服器成功註冊看守工具後,要求將會完成,且 RestartMethodsWatcherRegister 管道會保持開啟狀態 (但用戶端目前可自行關閉)。

如果註冊看守工具時發生錯誤,則 RestartMethodsWatcherRegister 管道會在不完成要求的情況下關閉。

提供的 watcher 管道最多只會使用一次,通知監看系統即將重新啟動,並給予回應機會。

觀看者可以關閉「RebootMethodsWatcher」管道來取消註冊。

已新增:HEAD

要求

名稱類型
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

為什麼系統重新啟動。

名稱說明
1
2

已下載新的系統更新。

8

無法套用系統更新,

3
6
4

Sessionmgr 失敗。

5

sysmgr 當機。

7

重大系統元件失敗。

9

已生效啟動分區變更。

10

系統可用記憶體的門檻過低。

聯合國

Admin_Mexec_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_PowerFullyOn_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_Poweroff_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_RestartToBootloader_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_RestartToRecovery_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_Restart_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

Admin_SuspendToRam_Result 嚴格

fuchsia.hardware.power.statecontrol/admin.fidl

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

業者

名稱類型說明
MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS 5 uint32

伺服器在變更系統電源狀態前,等待所有 RestartMethodsWatchers 回應的秒數上限。