zx_system_get_event

摘要

擷取系統事件的控制代碼。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_system_get_event(zx_handle_t root_job,
                                uint32_t kind,
                                zx_handle_t* event);

說明

root_job 必須是系統根工作的處理常式。

Kind 必須是下列其中一項:

  • ZX_SYSTEM_EVENT_OUT_OF_MEMORY - 系統會傳回的事件, 系統處於記憶體不足的狀況時,斷言 ZX_EVENT_SIGNALED。 等待此事件的程序必須快速執行任何重要的 以及關機。而是未指定當下可用的記憶體容量 事件都會發出信號,且未指定等待程序所需的動作時間長度 在核心開始終止程序或開始完全系統重新啟動之前。

  • ZX_SYSTEM_EVENT_IMMINENT_OUT_OF_MEMORY - 系統會傳回該事件 系統接近記憶體不足時,會斷言 ZX_EVENT_SIGNALED 情境。這個事件的信號比 ZX_SYSTEM_EVENT_OUT_OF_MEMORY 事件。這個事件的目的是 等候程序收集與即將到來相關的診斷資料 ZX_SYSTEM_EVENT_OUT_OF_MEMORY 事件,因為傳送時間可能太晚 安全可靠。

  • ZX_SYSTEM_EVENT_MEMORY_PRESSURE_CRITICAL - 會傳回事件 系統上的可用記憶體時,就會斷言 ZX_EVENT_SIGNALED 嚴重不足在此情況下,記憶體壓力等級會比 (發生 ZX_SYSTEM_EVENT_OUT_OF_MEMORY 的情況)。確切的可用記憶體容量 觸發的事件

  • ZX_SYSTEM_EVENT_MEMORY_PRESSURE_WARNING - 會傳回事件 系統上的可用記憶體時,就會斷言 ZX_EVENT_SIGNALED 接近極低的區間在本例中 嚴重性低於 ZX_SYSTEM_EVENT_MEMORY_PRESSURE_CRITICAL。 發出該事件時,實際可用的記憶體容量 未指定。

  • ZX_SYSTEM_EVENT_MEMORY_PRESSURE_NORMAL - 系統會傳回該事件 系統上的可用記憶體出現以下情況時,就會斷言 ZX_EVENT_SIGNALED: 健康狀態良好發出事件時的確切可用記憶體量 未指定,

核心將在下列五個事件中斷言 ZX_EVENT_SIGNALED 嚴重性遞增:ZX_SYSTEM_EVENT_MEMORY_PRESSURE_NORMAL、 ZX_SYSTEM_EVENT_MEMORY_PRESSURE_WARNING, ZX_SYSTEM_EVENT_MEMORY_PRESSURE_CRITICAL、ZX_SYSTEM_EVENT_IMMINENT_OUT_OF_MEMORY, 和 ZX_SYSTEM_EVENT_OUT_OF_MEMORY。只有一個事件會斷言 在特定時間啟動 ZX_EVENT_SIGNALED。

ZX_SYSTEM_EVENT_OUT_OF_MEMORY 和 ZX_SYSTEM_EVENT_MEMORYPRESSURE* 擷取與系統記憶體壓力等級相對應的事件 這些事件的主要差異流程 等待任何 ZX_SYSTEM_EVENT_MEMORYPRESSURE* 事件時, 採取行動來釋放記憶體,嘗試釋放記憶體 系統的壓力。另一方面,有一種程序正在等待 ZX_SYSTEM_EVENT_OUT_OF_MEMORY 事件必須在 為乾淨關機做準備,目前我們現在無法嘗試 健康狀態良好的記憶體壓力水平

ZX_SYSTEM_EVENT_IMMINENT_OUT_OF_MEMORY 事件可以視為伴生事件 如果是 ZX_SYSTEM_EVENT_OUT_OF_MEMORY,這不會觸發記憶體收回 而是用於擷取記憶體診斷資料,有助於偵錯 會緊接著 ZX_SYSTEM_EVENT_OUT_OF_MEMORY 事件 (如果有的話)。

權限

無。

傳回值

zx_system_get_event() 會在成功時傳回 ZX_OK,而 event 會是有效值 處理常式或下方的錯誤代碼。

錯誤

ZX_ERR_ACCESS_DENIED 呼叫程序政策無效,帳號代碼 root_job 沒有 Kind 的 ZX_RIGHT_MANAGE_PROCESS 權限 ZX_SYSTEM_EVENT_OUT_OF_MEMORY,root_job 不是 系統的根工作

ZX_ERR_INVALID_ARGS Kind 不是指定的其中一個值。 。