---
title: sPowerManagement
framework: kernel
role: pseudoSymbol
path: kernel/ioscsiprotocolinterface/1810988-spowermanagement
---

# sPowerManagement

The sPowerManagement method is a static C-function which is called using mach's thread_call API. It guarantees us a thread of execution which is different than the power management thread and the workloop thread on which we can issue commands to the device synchronously or asynchronously without worrying about deadlocks. It calls through to HandlePowerChange, which is a state machine used to direct power management.

## Declaration

```occ
static void sPowerManagement (
 thread_call_param_twhichDevice ); 
```

## Parameters

- `whichDevice`: The 'this' pointer.

## Overview

Overview The sPowerManagement method is a static C-function which is called using mach's thread_call API. It guarantees us a thread of execution which is different than the power management thread and the workloop thread on which we can issue commands to the device synchronously or asynchronously without worrying about deadlocks. It calls through to HandlePowerChange, which is a state machine used to direct power management.

## See Also

### Miscellaneous

- [AbortCommand](kernel/ioscsiprotocolinterface/1810020-abortcommand.md)
- [AbortTask](kernel/ioscsiprotocolinterface/1810034-aborttask.md)
- [AbortTaskSet](kernel/ioscsiprotocolinterface/1810053-aborttaskset.md)
- [CheckPowerState](kernel/ioscsiprotocolinterface/1810067-checkpowerstate.md)
- [ClearACA](kernel/ioscsiprotocolinterface/1810087-clearaca.md)
- [ClearTaskSet](kernel/ioscsiprotocolinterface/1810108-cleartaskset.md)
- [ExecuteCommand](kernel/ioscsiprotocolinterface/1810126-executecommand.md)
- [finalize](kernel/ioscsiprotocolinterface/1810146-finalize.md)
- [free](kernel/ioscsiprotocolinterface/1810163-free.md)
- [GetCommandGate](kernel/ioscsiprotocolinterface/1810184-getcommandgate.md)
- [GetInitialPowerState](kernel/ioscsiprotocolinterface/1810205-getinitialpowerstate.md)
- [GetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810233-getuserclientexclusivitystate.md)
- [HandleCheckPowerState()](kernel/ioscsiprotocolinterface/1810265-handlecheckpowerstate.md)
- [HandleCheckPowerState(UInt32)](kernel/ioscsiprotocolinterface/1810294-handlecheckpowerstate.md)
- [HandleCheckPowerState(void)](kernel/ioscsiprotocolinterface/1810368-handlecheckpowerstate.md)
- [HandleGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810391-handlegetuserclientexclusivityst.md)
- [HandlePowerChange](kernel/ioscsiprotocolinterface/1810424-handlepowerchange.md)
- [HandleProtocolServiceFeature](kernel/ioscsiprotocolinterface/1810462-handleprotocolservicefeature.md)
- [HandleSetPowerState](kernel/ioscsiprotocolinterface/1810510-handlesetpowerstate.md)
- [HandleSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810570-handlesetuserclientexclusivityst.md)
- [InitializePowerManagement](kernel/ioscsiprotocolinterface/1810624-initializepowermanagement.md)
- [initialPowerStateForDomainState](kernel/ioscsiprotocolinterface/1810676-initialpowerstatefordomainstate.md)
- [IsPowerManagementIntialized](kernel/ioscsiprotocolinterface/1810727-ispowermanagementintialized.md)
- [IsProtocolServiceSupported](kernel/ioscsiprotocolinterface/1810761-isprotocolservicesupported.md)
- [LogicalUnitReset](kernel/ioscsiprotocolinterface/1810795-logicalunitreset.md)
- [setPowerState](kernel/ioscsiprotocolinterface/1810826-setpowerstate.md)
- [SetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810852-setuserclientexclusivitystate.md)
- [sGetPowerTransistionInProgress](kernel/ioscsiprotocolinterface/1810884-sgetpowertransistioninprogress.md)
- [sGetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1810914-sgetuserclientexclusivitystate.md)
- [sHandleCheckPowerState](kernel/ioscsiprotocolinterface/1810945-shandlecheckpowerstate.md)
- [sHandleSetPowerState](kernel/ioscsiprotocolinterface/1810965-shandlesetpowerstate.md)
- [sSetUserClientExclusivityState](kernel/ioscsiprotocolinterface/1811011-ssetuserclientexclusivitystate.md)
- [start](kernel/ioscsiprotocolinterface/1811044-start.md)
- [TargetReset](kernel/ioscsiprotocolinterface/1811073-targetreset.md)
- [TicklePowerManager()](kernel/ioscsiprotocolinterface/1811095-ticklepowermanager.md)
- [TicklePowerManager(UInt32)](kernel/ioscsiprotocolinterface/1811118-ticklepowermanager.md)
- [TicklePowerManager(void)](kernel/ioscsiprotocolinterface/1811187-ticklepowermanager.md)
- [willTerminate](kernel/ioscsiprotocolinterface/1811210-willterminate.md)
