/* * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * The contents of this file constitute Original Code as defined in and * are subject to the Apple Public Source License Version 1.1 (the * "License"). You may not use this file except in compliance with the * License. Please obtain a copy of the License at * http://www.apple.com/publicsource and read it before using this file. * * This Original Code and all software distributed under the License are * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ /* * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. * * */ #ifndef _IOPLATFORMSTATESENSOR_H #define _IOPLATFORMSTATESENSOR_H #include "IOPlatformSensor.h" class IOPlatformStateSensor : public IOPlatformSensor { OSDeclareDefaultStructors(IOPlatformStateSensor) protected: // overrides from OSObject superclass virtual bool init( void ); virtual void free( void ); // when we send values back to the sensor (as high and low thresholds) we have // to put them in the sensor's own representation. This will convert back to the // hw representation. virtual SensorValue applyCurrentValueInverseTransform( SensorValue ) const; public: // need to grab the threshold dictionary out of the thermal profile virtual IOReturn initPlatformSensor( const OSDictionary * dict ); // have to do a little extra initialization -- calculate initial state and send down // thresholds to sensor virtual IOReturn registerDriver( IOService * driver, const OSDictionary * dict, bool notify = true ); // Accessors for current sensor state virtual UInt32 getNumSensorStates( void ); virtual const OSNumber * getSensorState( void ); virtual UInt32 getSensorStateUInt32( void ); virtual void setSensorState( const OSNumber * state ); // get the thresholds for a state virtual const OSNumber * getLowThresholdForState( const OSDictionary * state ); virtual const OSNumber * getHighThresholdForState( const OSDictionary * state ); virtual const OSDictionary * getThresholdsForState( UInt32 state ); // This is called when a threshold hit message is received from a sensor. It causes the // relevant control loops to be notified as well. virtual IOReturn thresholdHit( bool low, OSDictionary * msgDict ); // Set sensors threshold for a particular state - useful for overriding default behavior //virtual void setThresholdForState (UInt32 state, ThresholdInfo *thresh); // Send thresholds for current state to sensor virtual IOReturn sendThresholdsToSensor( void ); }; #endif // _IOPLATFORMSTATESENSOR_H