协议
管理员
在 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
|
重新启动
要求设备重新启动。
请求
名称 | 类型 |
---|---|
reason |
RebootReason
|
响应
名称 | 类型 |
---|---|
payload |
Admin_Reboot_Result
|
RebootToBootloader
要求设备重新启动以进入引导加载程序。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
Admin_RebootToBootloader_Result
|
RebootToRecovery
要求设备重新启动进入 recovery 分区。
请求
<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_将使用时间_SECONDS”作为返回结果。此渠道将用于向 Watcher 发送通知一次。一旦 Watcher 响应或超时到期,RebootMethodsWatcher 的客户端就会关闭该通道。
OnReboot
请求
名称 | 类型 |
---|---|
reason |
RebootReason
|
响应
<EMPTY>
RebootMethodsWatcherRegister
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
允许组件注册要在调用 Reboot 方法时执行的回调。此协议的主要用途是能够跟踪重新启动的原因。如果您要使用此协议,请考虑依赖组件框架的有序关停。
注册
注册 watcher,以便在调用 Reboot 方法时收到通知。注册渠道最多只会使用一次,用于通知观察器即将重新启动,并给其响应的机会。
观看者可以通过关闭相应频道来取消注册。
请求
名称 | 类型 |
---|---|
watcher |
RebootMethodsWatcher
|
RegisterWithAck
注册 watcher,以便在调用 Reboot 方法时收到通知。
成功向服务器注册 Watcher 后,请求就会完成,RebootMethodsWatcherRegister 通道将保持打开状态(尽管此时客户端可以将其关闭)。
如果注册 Watcher 时出错,则系统会关闭 RebootMethodsWatcherRegister 通道,而不会完成请求。
提供的 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>
枚举
RebootReason 严格
类型: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 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_Mexec_Response
|
|
2 |
err |
zx/Status
|
Admin_PowerFullyOn_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_PowerFullyOn_Response
|
|
2 |
err |
zx/Status
|
Admin_Poweroff_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_Poweroff_Response
|
|
2 |
err |
zx/Status
|
Admin_RebootToBootloader_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_RebootToBootloader_Response
|
|
2 |
err |
zx/Status
|
Admin_RebootToRecovery_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_RebootToRecovery_Response
|
|
2 |
err |
zx/Status
|
Admin_Reboot_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_Reboot_Response
|
|
2 |
err |
zx/Status
|
Admin_SuspendToRam_Result 严格
在 fuchsia.hardware.power.statecontrol/admin.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Admin_SuspendToRam_Response
|
|
2 |
err |
zx/Status
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS |
5
|
uint32 |
在更改系统电源状态之前,服务器等待所有 RebootMethodsWatchers 响应的最大秒数。 |