mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-04 01:29:22 +00:00
5b0f0cc134
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
103 lines
2.7 KiB
C
103 lines
2.7 KiB
C
/************************************************************
|
|
|
|
Created: Saturday, July 27, 1991 at 7:21 PM
|
|
Timer.h
|
|
C Interface to the Macintosh Libraries
|
|
|
|
|
|
Copyright Apple Computer, Inc. 1985-1993
|
|
All rights reserved
|
|
|
|
|
|
|
|
Change History (most recent first):
|
|
|
|
<13> 7/7/93 DTY Change USES68KINLINES to USESROUTINEDESCRIPTORS. Add CallXProc
|
|
and NewXProc macros.
|
|
<12> 6/7/93 EPT More ProcPtr/UPP work.
|
|
<11> 6/3/93 EPT Fixed TimeMgrTask definition.
|
|
<10> 6/3/93 EPT Synch up with NuReality.
|
|
<9> 4/14/93 DTY More ProcPtr work.
|
|
<8> 2/24/93 JDR Added kTMTaskActive according to Inside Mac VI.
|
|
<7> 2/15/93 KIP Change #ifdef USESROUTINEDESCRIPTORS to #ifndef
|
|
USESROUTINEDESCRIPTORS to help Dean out.
|
|
<6> 2/9/93 DTY If weÕre using routine descriptors, typedef ÕProcPtrs to be
|
|
UniversalProcPtrs so that the caller can pass a real routine
|
|
address, or a pointer to a routine descriptor. This causes
|
|
parameter type checking to be lost, which is why we only do this
|
|
if routine descriptors are used.
|
|
<5> 7/31/91 JL Updated Copyright.
|
|
<4> 1/27/91 LN Checked in Database generate file from DSG.
|
|
<3> 12/3/90 JDR <dba> Use #pragma parameter and inlines.
|
|
|
|
************************************************************/
|
|
|
|
|
|
#ifndef __TIMER__
|
|
#define __TIMER__
|
|
|
|
#ifndef __TYPES__
|
|
#include <Types.h>
|
|
#endif
|
|
|
|
#ifndef __OSUTILS__
|
|
#include <OSUtils.h>
|
|
#endif
|
|
|
|
|
|
typedef struct TMTask TMTask, *TMTaskPtr;
|
|
|
|
#if USESROUTINEDESCRIPTORS
|
|
enum {
|
|
uppTimerProcInfo = kRegisterBased | REGISTER_PARAM_FIELD(1, kA1, kFourByteCode)
|
|
};
|
|
|
|
typedef pascal void (*TimerProcPtr)(TMTaskPtr tmTaskPtr);
|
|
typedef UniversalProcPtr TimerUPP;
|
|
|
|
#define CallTimerProc(userRoutine, tmTaskPtr) \
|
|
CallUniversalProc(userRoutine, uppTimerProcInfo, tmTaskPtr)
|
|
#define NewTimerProc(userRoutine) \
|
|
(TimerUPP) NewRoutineDescriptor(userRoutine, uppTimerProcInfo, GetCurrentISA())
|
|
#else
|
|
typedef pascal void (*TimerProcPtr)(void);
|
|
typedef TimerProcPtr TimerUPP;
|
|
|
|
#define CallTimerProc(userRoutine, tmTaskPtr) \
|
|
(*userRoutine)()
|
|
#define NewTimerProc(userRoutine) \
|
|
(TimerUPP) (userRoutine)
|
|
#endif
|
|
|
|
#define kTMTaskActive (1<<15) /* high bit of qType is set if task is active */
|
|
|
|
struct TMTask {
|
|
QElemPtr qLink;
|
|
short qType;
|
|
TimerUPP tmAddr;
|
|
long tmCount;
|
|
long tmWakeUp;
|
|
long tmReserved;
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#pragma parameter InsTime(__A0)
|
|
pascal void InsTime(QElemPtr tmTaskPtr)
|
|
= 0xA058;
|
|
#pragma parameter InsXTime(__A0)
|
|
pascal void InsXTime(QElemPtr tmTaskPtr)
|
|
= 0xA458;
|
|
#pragma parameter PrimeTime(__A0,__D0)
|
|
pascal void PrimeTime(QElemPtr tmTaskPtr,long count)
|
|
= 0xA05A;
|
|
#pragma parameter RmvTime(__A0)
|
|
pascal void RmvTime(QElemPtr tmTaskPtr)
|
|
= 0xA059;
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|