Google is committed to advancing racial equity for Black communities. See how.

fuchsia.hardware.power.statecontrol

PROTOCOLS

Admin

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

Provides methods to request that the system be transitioned into a supported power state.

Note (see fxbug.dev/58348): These methods do not return until after the state transition has been completed. In most cases (e.g. Reboot), a successful transition means that the caller does not actually observe the completion because the system will be rebooted before the call is completed. The implication is that using a synchronous FIDL client with these methods will result in a blocked thread for the duration of the call, or even for the remainder of the component's life (in the case of Reboot). Therefore, if a synchronous FIDL client is to be used with this protocol then care should be taken to avoid handling any shutdown-induced callbacks on the same thread that was used to initiate the transition. Example callbacks include fuchsia.process.lifecycle/Lifecycle.Stop and RebootMethodsWatcher.OnReboot. Alternatively, the caller could choose to use an asynchronous FIDL client with this protocol to avoid blocking their calling thread.

Mexec

Performs a kernel mexec.

Request

NameType

Response

NameType
result Admin_Mexec_Result

PowerFullyOn

Asks the device to enter a fully on state.

Request

NameType

Response

NameType
result Admin_PowerFullyOn_Result

Poweroff

Asks all devices to enter a powered off state.

Request

NameType

Response

NameType
result Admin_Poweroff_Result

Reboot

Asks the device to reboot.

Request

NameType
reason RebootReason

Response

NameType
result Admin_Reboot_Result

RebootToBootloader

Asks the device to reboot into the bootloader.

Request

NameType

Response

NameType
result Admin_RebootToBootloader_Result

RebootToRecovery

Asks the device to reboot into the recovery partition.

Request

NameType

Response

NameType
result Admin_RebootToRecovery_Result

SuspendToRam

Request

NameType

Response

NameType
result Admin_SuspendToRam_Result

RebootMethodsWatcher

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

Allows components to be notified when Reboot related methods are called. Watchers will be given 'MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS' to return before the system power state is changed. The channel will be used once to send a notification to the watcher. Once the watcher responds or the timeout expires, the channel will be closed by the client of RebootMethodsWatcher.

OnReboot

Request

NameType
reason RebootReason

Response

NameType

RebootMethodsWatcherRegister

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

Allows components to register a callback that will be executed when a Reboot method is called. The main purpose of this protocol is to be able to track reboot reasons. Consider relying on Component Framework's orderly shutdown if you're looking at using this protocol.

Register

Register a watcher to be notified when a Reboot method is called. The Register channel will be used at most once to notify the watcher of an impending reboot and allow it the chance to respond.

Watchers can unregister by closing the underlying channel.

Request

NameType
watcher RebootMethodsWatcher

STRUCTS

Admin_Mexec_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_PowerFullyOn_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_Poweroff_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_RebootToBootloader_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_RebootToRecovery_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_Reboot_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

Admin_SuspendToRam_Response

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescriptionDefault

ENUMS

RebootReason strict

Type: uint32

Defined in fuchsia.hardware.power.statecontrol/reboot_reason.fidl

Why the system reboots.

NameValueDescription
USER_REQUEST 1
SYSTEM_UPDATE 2

A new system update has been downloaded.

RETRY_SYSTEM_UPDATE 8

Applying the system update has failed.

HIGH_TEMPERATURE 3
FACTORY_DATA_RESET 6
SESSION_FAILURE 4

Sessionmgr has failed.

SYSMGR_FAILURE 5

sysmgr crashed.

CRITICAL_COMPONENT_FAILURE 7

A critical system component has failed.

ZBI_SWAP 9

A boot partition change was effected.

SystemPowerState strict

Type: uint8

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameValueDescription
FULLY_ON 1
REBOOT 2
REBOOT_BOOTLOADER 3
REBOOT_RECOVERY 4
POWEROFF 5
MEXEC 6
SUSPEND_RAM 7

UNIONS

Admin_Mexec_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_Mexec_Response
err zx/status

Admin_PowerFullyOn_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_PowerFullyOn_Response
err zx/status

Admin_Poweroff_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_Poweroff_Response
err zx/status

Admin_RebootToBootloader_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_RebootToBootloader_Response
err zx/status

Admin_RebootToRecovery_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_RebootToRecovery_Response
err zx/status

Admin_Reboot_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_Reboot_Response
err zx/status

Admin_SuspendToRam_Result strict

Defined in fuchsia.hardware.power.statecontrol/admin.fidl

NameTypeDescription
response Admin_SuspendToRam_Response
err zx/status

CONSTANTS

NameValueTypeDescription
MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS 5 uint32

The maxium number of seconds the server will wait for responses from all RebootMethodsWatchers before changing the system power state.

MAX_SYSTEM_POWER_STATES 7 uint32
SUSPEND_FLAG_MEXEC 3705406208 uint32
SUSPEND_FLAG_POWEROFF 3705405952 uint32
SUSPEND_FLAG_REBOOT 3705405696 uint32

All available suspend flags.

SUSPEND_FLAG_REBOOT_BOOTLOADER 3705405697 uint32
SUSPEND_FLAG_REBOOT_RECOVERY 3705405698 uint32
SUSPEND_FLAG_SUSPEND_RAM 3705406464 uint32