+
+ static void ack_timer_expired( thread_call_param_t, thread_call_param_t );
+ static IOReturn actionAckTimerExpired(OSObject *, void *, void *, void *, void * );
+ static IOReturn actionDriverCalloutDone(OSObject *, void *, void *, void *, void * );
+ static IOPMRequest * acquirePMRequest( IOService * target, UInt32 type );
+ static void releasePMRequest( IOPMRequest * request );
+ static void pmDriverCallout( IOService * from );
+ static void pmTellClientWithResponse( OSObject * object, void * context );
+ static void pmTellAppWithResponse( OSObject * object, void * context );
+ bool ackTimerTick( void );
+ void addPowerChild1( IOPMRequest * request );
+ void addPowerChild2( IOPMRequest * request );
+ void addPowerChild3( IOPMRequest * request );
+ void adjustPowerState( void );
+ void start_ack_timer( UInt32 value, UInt32 scale );
+ void handlePMstop( IOPMRequest * request );
+ void handleRegisterPowerDriver( IOPMRequest * request );
+ bool handleAcknowledgePowerChange( IOPMRequest * request );
+ void handlePowerDomainWillChangeTo( IOPMRequest * request );
+ void handlePowerDomainDidChangeTo( IOPMRequest * request );
+ void handleMakeUsable( IOPMRequest * request );
+ void handleChangePowerStateTo( IOPMRequest * request );
+ void handleChangePowerStateToPriv( IOPMRequest * request );
+ void handlePowerOverrideChanged( IOPMRequest * request );
+ void handleInterestChanged( IOPMRequest * request );
+ void submitPMRequest( IOPMRequest * request );
+ void submitPMRequest( IOPMRequest ** request, IOItemCount count );
+ void executePMRequest( IOPMRequest * request );
+ bool servicePMRequest( IOPMRequest * request, IOPMWorkQueue * queue );
+ bool retirePMRequest( IOPMRequest * request, IOPMWorkQueue * queue );
+ bool servicePMRequestQueue( IOPMRequest * request, IOPMRequestQueue * queue );
+ bool servicePMReplyQueue( IOPMRequest * request, IOPMRequestQueue * queue );
+ bool servicePMFreeQueue( IOPMRequest * request, IOPMRequestQueue * queue );
+ bool notifyInterestedDrivers( void );
+ void notifyInterestedDriversDone( void );
+ bool notifyControllingDriver( void );
+ void notifyControllingDriverDone( void );
+ void driverSetPowerState( void );
+ void driverInformPowerChange( void );
+ bool isPMBlocked( IOPMRequest * request, int count );
+ void start_our_change( const changeNoteItem * changeNote );
+ IOReturn start_parent_change( const changeNoteItem * changeNote );
+ void notifyChildren( void );
+ void notifyChildrenDone( void );
+ void cleanClientResponses ( bool logErrors );