#ifndef _IOKIT_MACRISC4PE_H
#define _IOKIT_MACRISC4PE_H
#include <IOKit/platform/ApplePlatformExpert.h>
#include "IOPMSlotsMacRISC4.h"
#include "IOPMUSBMacRISC4.h"
#include "U3.h"
enum
{
kMacRISC4TypeUnknown = kMachineTypeUnknown,
kMacRISC4TypePowerMac,
kMacRISC4TypePowerBook,
};
#define kMacRISC4ParentICKey "AAPL,parentIC"
class MacRISC4PE : public ApplePlatformExpert
{
OSDeclareDefaultStructors(MacRISC4PE);
friend class MacRISC4CPU;
private:
const char *provider_name;
unsigned long uniNVersion;
MacRISC4CPU *macRISC4CPU;
AppleU3 *uniN;
class IOPMSlotsMacRISC4 *slotsMacRISC4;
IOLock *pmmutex;
bool isPortable,
u3IsHostMPIC,
cannotSleep;
IOService *ioPPluginNub;
IOService *plFuncNub;
void getDefaultBusSpeeds(long *numSpeeds, unsigned long **speedList);
void PMInstantiatePowerDomains ( void );
void PMRegisterDevice(IOService * theNub, IOService * theDevice);
IORegistryEntry * retrievePowerMgtEntry (void);
public:
virtual bool start(IOService *provider);
virtual bool platformAdjustService(IOService *service);
virtual IOReturn callPlatformFunction(const OSSymbol *functionName,
bool waitForFunction, void *param1, void *param2,
void *param3, void *param4);
};
#endif // _IOKIT_MACRISC4PE_H