Portable2004_PlatformMonitor.h [plain text]
#include "IOPlatformMonitor.h"
#include "MacRISC2.h"
class MacRISC2PE;
enum {
kPowerState0 = 0, kPowerState1 = 1, kMaxPowerStates = kPowerState1 + 1,
kThermalState0 = 0, kThermalState1 = 1, kThermalState2 = 2, kThermalState3 = 3, kMaxThermalStates = kThermalState3 + 1,
kClamshellStateOpen = 0, kClamshellStateClosed = 1, kNumClamshellStates = kClamshellStateClosed + 1,
kCPUPowerState0 = 0,
kCPUPowerState1 = 1,
kGPUPowerState0 = 0,
kGPUPowerState1 = 1,
kGPUPowerState2 = 2,
kPowerSensor = 0, kThermalSensor = kPowerSensor + 1, kClamshellSensor = kThermalSensor + 1, kMaxSensors = kClamshellSensor + 1, kCPUController = kMaxSensors, kGPUController = kCPUController + 1, kSlewController = kGPUController + 1, kMaxConSensors = kSlewController + 1,
kMaxSensorIndex = 6 };
enum {
kPB64MachineType,
kPB65MachineType,
kPB54MachineType,
kPB55MachineType,
kPB56MachineType,
kPB57MachineType,
kMaxMachineTypes
};
#define kIOPMonPowerStateKey "IOPMonPowerState"
#define kIOPMonThermalStateKey "IOPMonThermalState"
#define kIOPMonClamshellStateKey "IOPMonClamshellState"
#define kIOPMonCPUActionKey "IOPMonCPUAction"
#define kIOPMonGPUActionKey "IOPMonGPUAction"
#define kIOPMonSlewActionKey "target-value"
#define kIOPMonState0 "State0"
#define kIOPMonState1 "State1"
#define kIOPMonState2 "State2"
#define kIOPMonState3 "State3"
#define kIOPMonFull "FullSpeed"
#define kIOPMonReduced "ReducedSpeed"
#define kIOPMonSlow "SlowSpeed"
class Portable2004_PlatformMonitor : public IOPlatformMonitor
{
OSDeclareDefaultStructors(Portable2004_PlatformMonitor)
private:
OSDictionary *dictPowerLow, *dictPowerHigh;
OSDictionary *dictClamshellOpen, *dictClamshellClosed;
MacRISC2PE *macRISC2PE;
int machineType;
bool goingToSleep;
protected:
static IOReturn iopmonCommandGateCaller(OSObject *object, void *arg0, void *arg1, void *arg2, void *arg3);
virtual bool initPowerState ();
virtual void savePowerState ();
virtual bool restorePowerState ();
virtual bool initThermalState ();
virtual void saveThermalState ();
virtual bool restoreThermalState ();
virtual bool initClamshellState ();
virtual void saveClamshellState ();
virtual bool restoreClamshellState ();
virtual IOReturn monitorPower (OSDictionary *dict, IOService *provider);
virtual void updateIOPMonStateInfo (UInt32 type, UInt32 state);
virtual bool handlePowerEvent (IOPMonEventData *eventData);
virtual bool handleThermalEvent (IOPMonEventData *eventData);
virtual bool handleClamshellEvent (IOPMonEventData *eventData);
public:
virtual bool start(IOService *provider);
virtual IOReturn powerStateWillChangeTo (IOPMPowerFlags, unsigned long, IOService*);
virtual IOReturn powerStateDidChangeTo (IOPMPowerFlags, unsigned long, IOService*);
virtual IOReturn setAggressiveness(unsigned long selector, unsigned long newLevel);
virtual IOReturn message( UInt32 type, IOService * provider, void * argument = 0 );
virtual void setBusSlew (UInt32 newLevel);
virtual bool initPlatformState ();
virtual void savePlatformState ();
virtual void restorePlatformState ();
virtual bool adjustPlatformState ();
virtual IOReturn registerConSensor (OSDictionary *dict, IOService *conSensor);
virtual bool unregisterSensor (UInt32 sensorID);
virtual bool lookupConSensorInfo (OSDictionary *dict, IOService *conSensor,
UInt32 *type, UInt32 *index, UInt32 *subIndex);
virtual UInt32 lookupThermalStateFromValue (UInt32 sensorIndex, ThermalValue value);
};