void handleQueueSleepWakeUUID(
OSObject *obj);
- IOReturn setMaintenanceWakeCalendar(
- const IOPMCalendarStruct * calendar );
+ IOReturn setMaintenanceWakeCalendar(const IOPMCalendarStruct * calendar );
// Handle callbacks from IOService::systemWillShutdown()
void acknowledgeSystemWillShutdown( IOService * from );
bool systemMessageFilter(
void * object, void * arg1, void * arg2, void * arg3 );
+ void publishPMSetting(
+ const OSSymbol * feature, uint32_t where, uint32_t * featureID );
+
/*! @function recordPMEvent
@abstract Logs IOService PM event timing.
@discussion Should only be called from IOServicePM. Should not be exported.
IOPMPowerStateQueue *pmPowerStateQueue;
OSArray *allowedPMSettings;
+ OSArray *noPublishPMSettings;
PMTraceWorker *pmTracer;
PMAssertionsTracker *pmAssertions;
unsigned int logGraphicsClamp :1;
unsigned int darkWakeToSleepASAP :1;
unsigned int darkWakeMaintenance :1;
- unsigned int darkWakePostTickle :1;
+ unsigned int darkWakeSleepService :1;
+ unsigned int darkWakePostTickle :1;
unsigned int sleepTimerMaintenance :1;
unsigned int lowBatteryCondition :1;
unsigned int hibernateDisabled :1;
unsigned int hibernateNoDefeat :1;
- unsigned int hibernateAborted :1;
unsigned int rejectWranglerTickle :1;
+ unsigned int wranglerTickleLatched :1;
uint32_t hibernateMode;
uint32_t userActivityCount;
uint32_t userActivityAtSleep;
uint32_t lastSleepReason;
+ uint32_t hibernateAborted;
// Info for communicating system state changes to PMCPU
int32_t idxPMCPUClamshell;
IOOptionBits platformSleepSupport;
uint32_t _debugWakeSeconds;
+ uint32_t _lastDebugWakeSeconds;
queue_head_t aggressivesQueue;
thread_call_t aggressivesThreadCall;
IOPMTimeline *timeline;
+ IOPMSystemSleepPolicyHandler _sleepPolicyHandler;
+ void * _sleepPolicyTarget;
+ IOPMSystemSleepPolicyVariables *_sleepPolicyVars;
+
// IOPMrootDomain internal sleep call
IOReturn privateSleepSystem( uint32_t sleepReason );
void reportUserInput( void );
bool checkSystemCanSleep( IOOptionBits options = 0 );
+ bool checkSystemCanSustainFullWake( void );
void adjustPowerState( bool sleepASAP = false );
void setQuickSpinDownTimeout( void );
void evaluatePolicy( int stimulus, uint32_t arg = 0 );
+ void evaluateAssertions(IOPMDriverAssertionType newAssertions,
+ IOPMDriverAssertionType oldAssertions);
+
void deregisterPMSettingObject( PMSettingObject * pmso );
#if HIBERNATION
bool getSleepOption( const char * key, uint32_t * option );
- bool evaluateSystemSleepPolicy( IOPMSystemSleepParameters * p );
+ bool evaluateSystemSleepPolicy( IOPMSystemSleepParameters * p, int phase );
void evaluateSystemSleepPolicyEarly( void );
void evaluateSystemSleepPolicyFinal( void );
#endif /* HIBERNATION */
+
+ bool latchDisplayWranglerTickle( bool latch );
#endif /* XNU_KERNEL_PRIVATE */
};