AppleSmartBatteryManager.h [plain text]
#ifndef __AppleSmartBatteryManager__
#define __AppleSmartBatteryManager__
#include <IOKit/IOService.h>
#include <IOKit/smbus/IOSMBusController.h>
#include "AppleSmartBattery.h"
#include "AppleSmartBatteryManagerUserClient.h"
void BattLog(char *fmt, ...);
void BattLog(char *fmt, ...);
class AppleSmartBattery;
class AppleSmartBatteryManagerUserClient;
class AppleSmartBatteryManager : public IOService {
friend class AppleSmartBatteryManagerUserClient;
OSDeclareDefaultStructors(AppleSmartBatteryManager)
public:
bool start(IOService *provider);
IOReturn performTransaction(IOSMBusTransaction * transaction,
IOSMBusTransactionCompletion completion = 0,
OSObject * target = 0,
void * reference = 0);
IOReturn setPowerState(unsigned long which, IOService *whom);
IOReturn message(UInt32 type, IOService *provider, void * argument);
void AppleSmartBatteryManager::handleFullDischarge(void);
private:
IOReturn inhibitCharging(int level);
IOReturn disableInflow(int level);
IOReturn setPollingInterval(int milliSeconds);
void gatedSendCommand(int cmd, int level, IOReturn *ret_code);
bool transactionCompletion(void *ref, IOSMBusTransaction *transaction);
private:
IOSMBusTransaction fTransaction;
IOCommandGate * fBatteryGate;
IOCommandGate * fManagerGate;
IOSMBusController * fProvider;
AppleSmartBattery * fBattery;
};
#endif