摘要
TODO(https://fxbug.dev/42108078)
宣告
#include <zircon/syscalls.h>
zx_status_t zx_system_powerctl(zx_handle_t resource,
uint32_t cmd,
const zx_system_powerctl_arg_t* arg);
說明
zx_system_powerctl
會根據
cmd.Zircon 可能無法將系統設為特定電源狀態
視所用架構的支援層級而定。
arg 是結構的選用指標,可提供進一步資訊 有關要執行的指令
指令
ZX_SYSTEM_POWERCTL_ENABLE_ALL_CPUS
將所有處理器核心設為啟用。
arg 類型:n/a
ZX_SYSTEM_POWERCTL_DISABLE_ALL_CPUS_BUT_PRIMARY
僅將主要 CPU 設為使用中。
arg 類型:n/a
ZX_SYSTEM_POWERCTL_ACPI_TRANSITION_S_STATE
僅針對 x86-64 定義,但不再支援。
傳回 ZX_ERR_NOT_SUPPORTED
。
ZX_SYSTEM_POWERCTL_X86_SET_PKG_PL1
僅針對 x86-64 定義。
將 CPU 設為電源 1。
arg 類型:僅包含 x86_power_limit
聯集的 zx_system_powerctl_arg_t
視為有效元素
struct {
uint32_t power_limit; // PL1 value in milliwatts
uint32_t time_window; // PL1 time window in microseconds
uint8_t clamp; // PL1 clamping enable
uint8_t enable; // PL1 enable
uint8_t padding2[2];
} x86_power_limit;
ZX_SYSTEM_POWERCTL_REBOOT
重新啟動系統、控管功能應全面執行相關韌體,並 。
arg 類型:n/a
ZX_SYSTEM_POWERCTL_REBOOT_BOOTLOADER
重新啟動系統,但在系統啟動載入程式停止執行,而不是載入作業系統 有些人會將 Cloud Storage 視為檔案系統 但實際上不是
arg 類型:n/a
ZX_SYSTEM_POWERCTL_REBOOT_RECOVERY
重新啟動系統,但載入復原作業系統,而非 。
arg 類型:n/a
ZX_SYSTEM_POWERCTL_SHUTDOWN
關閉系統。
arg 類型:n/a
ZX_SYSTEM_POWERCTL_ACK_KERNEL_INITIATED_REBOOT
如果使用者空間已準備好重新啟動,以回應先前的訊號,就會由使用者空間使用 從核心重新啟動系統的核心部分。
arg 類型:n/a
如果核心先前未傳送所需信號,則傳回 ZX_ERR_BAD_STATE
才能重新啟動。
權限
resource 必須具有基礎為 ZX_RSRC_SYSTEM_POWER_BASE
的資源類型 ZX_RSRC_KIND_SYSTEM
。
傳回值
ZX_OK
錯誤
如果提供無法辨識的 cmd
值,則會傳回 ZX_ERR_INVALID_ARGS
。
另請參閱
TODO(https://fxbug.dev/42108078)