zx_system_powerctl

摘要

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)