blob: d3a2649ea8b07f7d930c1ef034ae0981781861af [file] [log] [blame] [view]
<link rel="stylesheet" href="../style.css" />
[TOC]
# fuchsia.hardware.power.statecontrol
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div>
## **PROTOCOLS**
## Admin {#Admin}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=43)*
<p>Provides methods to request that the system be transitioned into a supported power state.</p>
<p>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 <a class='link' href='../fuchsia.process.lifecycle/'>fuchsia.process.lifecycle</a>/<a class='link' href='../fuchsia.process.lifecycle/#Lifecycle.Stop'>Lifecycle.Stop</a>
and <a class='link' href='../fuchsia.hardware.power.statecontrol/'>fuchsia.hardware.power.statecontrol</a>/<a class='link' href='../fuchsia.hardware.power.statecontrol/#RebootMethodsWatcher.OnReboot'>RebootMethodsWatcher.OnReboot</a>.
Alternatively, the caller could choose to use an asynchronous FIDL client with this protocol to
avoid blocking their calling thread.</p>
### Mexec {#Admin.Mexec}
<p>Performs a kernel mexec.</p>
<p>It is expected that the ZBI items specified by
<code>zx_system_mexec_payload_get()</code> have not yet been appended to the
provided data ZBI.</p>
#### Request {#Admin.Mexec_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>kernel_zbi</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
<tr>
<td><code>data_zbi</code></td>
<td>
<code>handle&lt;vmo&gt;</code>
</td>
</tr>
</table>
#### Response {#Admin.Mexec_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_Mexec_Result'>Admin_Mexec_Result</a></code>
</td>
</tr>
</table>
### PowerFullyOn {#Admin.PowerFullyOn}
<p>Asks the device to enter a fully on state.</p>
#### Request {#Admin.PowerFullyOn_Request}
&lt;EMPTY&gt;
#### Response {#Admin.PowerFullyOn_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_PowerFullyOn_Result'>Admin_PowerFullyOn_Result</a></code>
</td>
</tr>
</table>
### Poweroff {#Admin.Poweroff}
<p>Asks all devices to enter a powered off state.</p>
#### Request {#Admin.Poweroff_Request}
&lt;EMPTY&gt;
#### Response {#Admin.Poweroff_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_Poweroff_Result'>Admin_Poweroff_Result</a></code>
</td>
</tr>
</table>
### Reboot {#Admin.Reboot}
<p>Asks the device to reboot.</p>
#### Request {#Admin.Reboot_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>reason</code></td>
<td>
<code><a class='link' href='#RebootReason'>RebootReason</a></code>
</td>
</tr>
</table>
#### Response {#Admin.Reboot_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_Reboot_Result'>Admin_Reboot_Result</a></code>
</td>
</tr>
</table>
### RebootToBootloader {#Admin.RebootToBootloader}
<p>Asks the device to reboot into the bootloader.</p>
#### Request {#Admin.RebootToBootloader_Request}
&lt;EMPTY&gt;
#### Response {#Admin.RebootToBootloader_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_RebootToBootloader_Result'>Admin_RebootToBootloader_Result</a></code>
</td>
</tr>
</table>
### RebootToRecovery {#Admin.RebootToRecovery}
<p>Asks the device to reboot into the recovery partition.</p>
#### Request {#Admin.RebootToRecovery_Request}
&lt;EMPTY&gt;
#### Response {#Admin.RebootToRecovery_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_RebootToRecovery_Result'>Admin_RebootToRecovery_Result</a></code>
</td>
</tr>
</table>
### SuspendToRam {#Admin.SuspendToRam}
#### Request {#Admin.SuspendToRam_Request}
&lt;EMPTY&gt;
#### Response {#Admin.SuspendToRam_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#Admin_SuspendToRam_Result'>Admin_SuspendToRam_Result</a></code>
</td>
</tr>
</table>
## RebootMethodsWatcher {#RebootMethodsWatcher}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=94)*
<p>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.</p>
### OnReboot {#RebootMethodsWatcher.OnReboot}
#### Request {#RebootMethodsWatcher.OnReboot_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>reason</code></td>
<td>
<code><a class='link' href='#RebootReason'>RebootReason</a></code>
</td>
</tr>
</table>
#### Response {#RebootMethodsWatcher.OnReboot_Response}
&lt;EMPTY&gt;
## RebootMethodsWatcherRegister {#RebootMethodsWatcherRegister}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=79)*
<p>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.</p>
### Register {#RebootMethodsWatcherRegister.Register}
<p>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.</p>
<p>Watchers can unregister by closing the underlying channel.</p>
#### Request {#RebootMethodsWatcherRegister.Register_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>watcher</code></td>
<td>
<code><a class='link' href='#RebootMethodsWatcher'>RebootMethodsWatcher</a></code>
</td>
</tr>
</table>
## **STRUCTS**
### Admin_Mexec_Response {#Admin_Mexec_Response data-text="Admin_Mexec_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=69)*
&lt;EMPTY&gt;
### Admin_PowerFullyOn_Response {#Admin_PowerFullyOn_Response data-text="Admin_PowerFullyOn_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=45)*
&lt;EMPTY&gt;
### Admin_Poweroff_Response {#Admin_Poweroff_Response data-text="Admin_Poweroff_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=59)*
&lt;EMPTY&gt;
### Admin_RebootToBootloader_Response {#Admin_RebootToBootloader_Response data-text="Admin_RebootToBootloader_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=53)*
&lt;EMPTY&gt;
### Admin_RebootToRecovery_Response {#Admin_RebootToRecovery_Response data-text="Admin_RebootToRecovery_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=56)*
&lt;EMPTY&gt;
### Admin_Reboot_Response {#Admin_Reboot_Response data-text="Admin_Reboot_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=50)*
&lt;EMPTY&gt;
### Admin_SuspendToRam_Response {#Admin_SuspendToRam_Response data-text="Admin_SuspendToRam_Response"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=71)*
&lt;EMPTY&gt;
## **ENUMS**
### RebootReason [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#RebootReason data-text="RebootReason"}
Type: <code>uint32</code>
*Defined in [fuchsia.hardware.power.statecontrol/reboot_reason.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/reboot_reason.fidl;l=8)*
<p>Why the system reboots.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="RebootReason.USER_REQUEST">
<td><h3 id="RebootReason.USER_REQUEST" class="add-link hide-from-toc">USER_REQUEST</h3></td>
<td><code>1</code></td>
<td></td>
</tr>
<tr id="RebootReason.SYSTEM_UPDATE">
<td><h3 id="RebootReason.SYSTEM_UPDATE" class="add-link hide-from-toc">SYSTEM_UPDATE</h3></td>
<td><code>2</code></td>
<td><p>A new system update has been downloaded.</p>
</td>
</tr>
<tr id="RebootReason.RETRY_SYSTEM_UPDATE">
<td><h3 id="RebootReason.RETRY_SYSTEM_UPDATE" class="add-link hide-from-toc">RETRY_SYSTEM_UPDATE</h3></td>
<td><code>8</code></td>
<td><p>Applying the system update has failed.</p>
</td>
</tr>
<tr id="RebootReason.HIGH_TEMPERATURE">
<td><h3 id="RebootReason.HIGH_TEMPERATURE" class="add-link hide-from-toc">HIGH_TEMPERATURE</h3></td>
<td><code>3</code></td>
<td></td>
</tr>
<tr id="RebootReason.FACTORY_DATA_RESET">
<td><h3 id="RebootReason.FACTORY_DATA_RESET" class="add-link hide-from-toc">FACTORY_DATA_RESET</h3></td>
<td><code>6</code></td>
<td></td>
</tr>
<tr id="RebootReason.SESSION_FAILURE">
<td><h3 id="RebootReason.SESSION_FAILURE" class="add-link hide-from-toc">SESSION_FAILURE</h3></td>
<td><code>4</code></td>
<td><p>Sessionmgr has failed.</p>
</td>
</tr>
<tr id="RebootReason.SYSMGR_FAILURE">
<td><h3 id="RebootReason.SYSMGR_FAILURE" class="add-link hide-from-toc">SYSMGR_FAILURE</h3></td>
<td><code>5</code></td>
<td><p>sysmgr crashed.</p>
</td>
</tr>
<tr id="RebootReason.CRITICAL_COMPONENT_FAILURE">
<td><h3 id="RebootReason.CRITICAL_COMPONENT_FAILURE" class="add-link hide-from-toc">CRITICAL_COMPONENT_FAILURE</h3></td>
<td><code>7</code></td>
<td><p>A critical system component has failed.</p>
</td>
</tr>
<tr id="RebootReason.ZBI_SWAP">
<td><h3 id="RebootReason.ZBI_SWAP" class="add-link hide-from-toc">ZBI_SWAP</h3></td>
<td><code>9</code></td>
<td><p>A boot partition change was effected.</p>
</td>
</tr>
<tr id="RebootReason.OUT_OF_MEMORY">
<td><h3 id="RebootReason.OUT_OF_MEMORY" class="add-link hide-from-toc">OUT_OF_MEMORY</h3></td>
<td><code>10</code></td>
<td><p>The system hit a critical low threshold of available memory.</p>
</td>
</tr>
</table>
### SystemPowerState [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SystemPowerState data-text="SystemPowerState"}
Type: <code>uint8</code>
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=11)*
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="SystemPowerState.FULLY_ON">
<td><h3 id="SystemPowerState.FULLY_ON" class="add-link hide-from-toc">FULLY_ON</h3></td>
<td><code>1</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.REBOOT">
<td><h3 id="SystemPowerState.REBOOT" class="add-link hide-from-toc">REBOOT</h3></td>
<td><code>2</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.REBOOT_BOOTLOADER">
<td><h3 id="SystemPowerState.REBOOT_BOOTLOADER" class="add-link hide-from-toc">REBOOT_BOOTLOADER</h3></td>
<td><code>3</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.REBOOT_RECOVERY">
<td><h3 id="SystemPowerState.REBOOT_RECOVERY" class="add-link hide-from-toc">REBOOT_RECOVERY</h3></td>
<td><code>4</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.POWEROFF">
<td><h3 id="SystemPowerState.POWEROFF" class="add-link hide-from-toc">POWEROFF</h3></td>
<td><code>5</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.MEXEC">
<td><h3 id="SystemPowerState.MEXEC" class="add-link hide-from-toc">MEXEC</h3></td>
<td><code>6</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.SUSPEND_RAM">
<td><h3 id="SystemPowerState.SUSPEND_RAM" class="add-link hide-from-toc">SUSPEND_RAM</h3></td>
<td><code>7</code></td>
<td></td>
</tr>
<tr id="SystemPowerState.REBOOT_KERNEL_INITIATED">
<td><h3 id="SystemPowerState.REBOOT_KERNEL_INITIATED" class="add-link hide-from-toc">REBOOT_KERNEL_INITIATED</h3></td>
<td><code>8</code></td>
<td></td>
</tr>
</table>
## **UNIONS**
### Admin_Mexec_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_Mexec_Result data-text="Admin_Mexec_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=69)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_Mexec_Result.response">
<td><h3 id="Admin_Mexec_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_Mexec_Response'>Admin_Mexec_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_Mexec_Result.err">
<td><h3 id="Admin_Mexec_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_PowerFullyOn_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_PowerFullyOn_Result data-text="Admin_PowerFullyOn_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=45)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_PowerFullyOn_Result.response">
<td><h3 id="Admin_PowerFullyOn_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_PowerFullyOn_Response'>Admin_PowerFullyOn_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_PowerFullyOn_Result.err">
<td><h3 id="Admin_PowerFullyOn_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_Poweroff_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_Poweroff_Result data-text="Admin_Poweroff_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=59)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_Poweroff_Result.response">
<td><h3 id="Admin_Poweroff_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_Poweroff_Response'>Admin_Poweroff_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_Poweroff_Result.err">
<td><h3 id="Admin_Poweroff_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_RebootToBootloader_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_RebootToBootloader_Result data-text="Admin_RebootToBootloader_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=53)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_RebootToBootloader_Result.response">
<td><h3 id="Admin_RebootToBootloader_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_RebootToBootloader_Response'>Admin_RebootToBootloader_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_RebootToBootloader_Result.err">
<td><h3 id="Admin_RebootToBootloader_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_RebootToRecovery_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_RebootToRecovery_Result data-text="Admin_RebootToRecovery_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=56)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_RebootToRecovery_Result.response">
<td><h3 id="Admin_RebootToRecovery_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_RebootToRecovery_Response'>Admin_RebootToRecovery_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_RebootToRecovery_Result.err">
<td><h3 id="Admin_RebootToRecovery_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_Reboot_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_Reboot_Result data-text="Admin_Reboot_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=50)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_Reboot_Result.response">
<td><h3 id="Admin_Reboot_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_Reboot_Response'>Admin_Reboot_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_Reboot_Result.err">
<td><h3 id="Admin_Reboot_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
### Admin_SuspendToRam_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Admin_SuspendToRam_Result data-text="Admin_SuspendToRam_Result"}
*Defined in [fuchsia.hardware.power.statecontrol/admin.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=71)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="Admin_SuspendToRam_Result.response">
<td><h3 id="Admin_SuspendToRam_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#Admin_SuspendToRam_Response'>Admin_SuspendToRam_Response</a></code>
</td>
<td></td>
</tr>
<tr id="Admin_SuspendToRam_Result.err">
<td><h3 id="Admin_SuspendToRam_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
<td></td>
</tr>
</table>
## **CONSTANTS**
<table>
<tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr>
<tr id="MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=26">MAX_REBOOT_WATCHER_RESPONSE_TIME_SECONDS</a></td>
<td>
<code>5</code>
</td>
<td><code>uint32</code></td>
<td><p>The maxium number of seconds the server will wait for responses from all RebootMethodsWatchers
before changing the system power state.</p>
</td>
</tr>
<tr id="MAX_SYSTEM_POWER_STATES">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.hardware.power.statecontrol/admin.fidl;l=21">MAX_SYSTEM_POWER_STATES</a></td>
<td>
<code>8</code>
</td>
<td><code>uint32</code></td>
<td></td>
</tr>
</table>