通訊協定
管理員
如 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 回應的秒數上限。 |