mac-rom/Drivers/Backlight/PowerMgr.h

146 lines
4.2 KiB
C
Raw Normal View History

/*
File: PowerMgr.h
Contains: Portable Macintosh Control Panel
Power Manager Interim Equates
Written by: Andy Gong x6595
Copyright: <EFBFBD> 1991, 1993 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<SM2> 2/11/93 CSS Update from Horror. Comments follow <H4-H2>:
<H4> 6/30/92 ag Added new PowerManager command.
<H3> 8/26/91 SWC Fixed <2> (conflict with procedure name in driver).
<H2> 8/26/91 SWC Added definitions for the get/set brightness commands.
<6> 10/30/91 JSM Add a few more comments, remove some power manager commands,
misc. macros, and definition of Sleep(), none of which are used.
<5> 10/29/91 SAM Removed stuff not used by the backlight driver. Reincluded
Power.h from 7.0 change <2>.
<4> 10/28/91 SAM Rolled in Regatta file.
Regatta History (most recent first):
<3> 8/29/91 SAM (ag) added BatteryStatusImmCmd for non-filtered values. This was
a problem with asahi input (samples 1 second averaged).
<2> 6/30/91 SAM Merged from TERROR [<2>].
<1> 5/15/91 SAM Split off from TERRORProj.
Terror Change History:
<2> 6/26/91 ag changed global values to unsigned char.
<1> 1/23/91 ag first checked in
7.0 Change History:
<2> 8/19/91 JSM Include public Power.h, remove stuff that<EFBFBD>s in Power.h (except
for BOnIgnoreModem(), which for some reason isn<EFBFBD>t there), remove
other stuff that doesn<EFBFBD>t appear to be used in the backlight
driver at all. An interesting result of this: all the PowerMgr
routines defined here were C functions, when they are actually
Pascal functions (as defined in Power.h). This fixed a bug in
DRVROpen() in backlight.c which calls SleepQInstall() and was
mistakenly cleaning up too much on the stack. This really wasn't
a problem, though, since it happened just before an unlink which
fixed up the stack correctly.
<1> 2/22/91 ag roll 1.0 backlight driver into 7.0
*/
#include <retrace.h>
#include <Power.h>
/* Power Manager globals from InternalOnlyEqu.a */
typedef struct {
char SleepTime;
char HDTimeout;
struct QHdr SleepQHdr;
char SysTaskFlag;
char LastLevel;
char SaveSpeedo;
char Charger;
char SleepFlags;
char TimeOutdirtyFlag;
Ptr WakeVector;
Ptr HDvector;
int LastAct;
int LastHd;
unsigned char LowWarn; /* <t2> ag this is an unsigned value */
unsigned char Cutoff; /* <t2> ag this is an unsigned value */
Ptr BNmQEntry[9];
char BatQ[8];
char lpMSGvalid;
char IdleFlagCnt;
unsigned char BatAvg; /* <t2> ag this is an unsigned value */
char NTSCcopy;
char pmfree[2];
Ptr RAMwatchPtr;
Ptr ROMwatchPtr;
char watchCrsr;
char BatQIndex;
Ptr SleepNetHook;
Ptr vBatInt;
Ptr vEnvInt;
char WakeWarn;
char Level4Cnt;
Handle lpSICNHndl;
Str255 *(lpSTRPtr[4]);
VBLTask BatVBLTask;
VBLTask SwVBLTask;
} PmgrGlobals;
/* MachineType returned by SysEnvirons for Portable */
#define envPortable 8
/* Power Manager commands */
#define PowerControlCmd 0x10
#define PowerStatusCmd 0x18
#define ModemSetCmd 0x50
#define ScreenSetCmd 0x40
#define SetBrightnessCmd 0x41
#define GetScreenCmd 0x48
#define GetBrightnessCmd 0x49
#define ModemStatusCmd 0x58
#define BatteryStatusCmd 0x68
#define BatteryStatusImmCmd 0x69 /* <H4> command to read immediate not averaged values */
#define SetWTimeCmd 0x80
#define DisableWTimeCmd 0x82
#define ReadWTimeCmd 0x88
/* Masks for ModemStatusCmd and ModemSetCmd */
#define kModemOn 0x01
#define kModemPortA 0x02
#define kModemWakeup 0x04
#define kModemInstalled 0x08
#define kModemRingDetect 0x10
#define kModemOnHook 0x20
/* Parameter block for PMgr calls */
typedef struct {
short pmgrCmd, pmgrCnt;
Ptr pmgrXPtr, pmgrRPtr;
} PMgrPBlock;
typedef PMgrPBlock *PMgrPBPtr;
/* Glue for PMgr calls */
pascal OSErr PMgr(PMgrPBPtr pbp)={0x205F,0xA085,0x3E80};
/*
move.l (sp)+,a0
_PMgrOp
move d0,(sp)
*/
pascal OSErr Sleep()={0x7002,0xA08A};
/*
moveq #2,d0
_Sleep
*/
/* access to Power Manager's local variables */
#define PMgrLBase 0xd18
#define PMgrLocal(offset) (*((char *)(*((long *)PMgrLBase)+(offset))))
#define TOdirtyFlag 0x11
/* #define BatAvg 0x52 */