摘要
TODO(https://fxbug.dev/42108078)
宣告
#include <zircon/syscalls.h>
zx_status_t zx_system_powerctl(zx_handle_t resource, uint32_t cmd);
說明
zx_system_powerctl 會根據 cmd 的值變更系統的電源狀態。Zircon 可能無法將系統置於特定電源狀態,具體取決於其對所用架構的支援程度。
指令
ZX_SYSTEM_POWERCTL_REBOOT
重新啟動系統,控制權應會通過任何相關韌體和開機載入器。
ZX_SYSTEM_POWERCTL_REBOOT_BOOTLOADER
重新啟動系統,但停在系統啟動載入程式,不要載入作業系統。
ZX_SYSTEM_POWERCTL_REBOOT_RECOVERY
重新啟動系統,但載入復原作業系統,而非主要 OS。
ZX_SYSTEM_POWERCTL_SHUTDOWN
關閉系統。
ZX_SYSTEM_POWERCTL_ACK_KERNEL_INITIATED_REBOOT
當核心先前發出信號,表示核心想要重新啟動系統,使用者空間準備好重新啟動時,就會使用這個信號。
如果核心先前未發出重新啟動的信號,則傳回 ZX_ERR_BAD_STATE。
權限
資源必須具有資源種類 ZX_RSRC_KIND_SYSTEM,且基礎為 ZX_RSRC_SYSTEM_POWER_BASE。
傳回值
ZX_OK
錯誤
如果提供無法辨識的 cmd 值,則傳回 ZX_ERR_INVALID_ARGS。
另請參閱
TODO(https://fxbug.dev/42108078)