IOPMSlotsMacRISC4.h [plain text]
#ifndef _IOKIT_SLOTSMACRISC4DOMAIN_H
#define _IOKIT_SLOTSMACRISC4DOMAIN_H
#include <IOKit/IOService.h>
#include <IOKit/pwr_mgt/IOPM.h>
class IOPMrootDomain;
class IOPCIDevice;
enum
{
kPCIStatusConfigOffset = 0x6,
kPCIStatusPowerCapabilitiesSupportBitMask = ( 1L << 4 ),
kPCIHeaderTypeConfigOffset = 0xE,
kPCIHeaderTypeBitMask = 0x7F,
kPCIStandardHeaderType = 0,
kPCItoPCIBridgeHeaderType = 1,
kPCICardBusBridgeHeaderType = 2,
kPCIPowerCapabilitiesPtrStandardConfigOffset = 0x34,
kPCIPowerCapabilitiesPtrPCItoPCIBridgeConfigOffset = 0x34,
kPCIPowerCapabilitiesPtrCardBusBridgeConfigOffset = 0x14,
kPCIPowerCapabilityID = 0x01,
kPCIPowerCapabilitiesMinOffset = 0x40,
kPCIPowerCapabilitiesMaxOffset = 0xF8,
kPCIPowerCapabilitiesPMCRegisterOffset = 2,
kPCIPowerCapabilitiesDataRegisterOffset = 7,
kMaxPowerCapabilitiesListLoopCount = 64,
kMinPCIPowerCapabilitiesVersion = 2,
kPCIPowerCapabilitiesPMCVersionBitMask = 0x7,
kPCIPowerCapabilitiesPMCAuxCurrentOffset = 6,
kPCIStandardSleepCurrentNeeded = 20,
kMaxAuxPowerScalingFactorBitMask = 0x3,
kSawtoothPowerSupplyMillivolts = 5000, kMillivoltsPerVolt = 1000,
kPCIPowerCapabilitiesPMCSROffset = 4,
kPCIPowerCapabilitiesDataSelectBitShift = 9,
kPCIPowerCapabilitiesDataSelectBitMask = 0x1E00,
kPCIPowerCapabilitiesDataSelectMaxCombinations = 16,
kPCIPowerCapabilitiesDataSelectD3PowerConsumed = 3,
kPCIPowerCapabilitiesDataScaleBitShift = 13,
kPCIPowerCapabilitiesDataScaleBitMask = 0x6000,
kPCIPowerCapabilitiesDataScale10Divisor = 1,
kPCIPowerCapabilitiesDataScale100Divisor = 2,
kPCIPowerCapabilitiesPMESupportD3ColdBitMask = 0x8000, kPCIPowerCapabilitiesPMEEnableBitMask = 0x0100, };
class IOPMSlotsMacRISC4: public IOService
{
OSDeclareDefaultStructors(IOPMSlotsMacRISC4)
public:
IOPMrootDomain * rootDomain; unsigned long auxCapacity; unsigned long powerSupplyMillivolts;
bool checkAuxCapacity;
virtual bool start( IOService * provider );
virtual IOReturn determineSleepSupport ( void );
private:
virtual void probePCIhardware ( IOPCIDevice *, bool *, unsigned long * );
virtual bool dataRegisterPresent ( IOPCIDevice *, UInt8 );
virtual UInt32 getD3power ( IOPCIDevice *, UInt8 );
};
#endif