diff options
Diffstat (limited to 'packages/univint/src/Timer.pas')
-rw-r--r-- | packages/univint/src/Timer.pas | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/packages/univint/src/Timer.pas b/packages/univint/src/Timer.pas new file mode 100644 index 0000000000..5185977905 --- /dev/null +++ b/packages/univint/src/Timer.pas @@ -0,0 +1,258 @@ +{ + File: Timer.p + + Contains: Time Manager interfaces. + + Version: Technology: Mac OS 8.5 + Release: Universal Interfaces 3.4.2 + + Copyright: © 1985-2002 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://www.freepascal.org/bugs.html + +} + + +{ + Modified for use with Free Pascal + Version 200 + Please report any bugs to <gpc@microbizz.nl> +} + +{$mode macpas} +{$packenum 1} +{$macro on} +{$inline on} +{$CALLING MWPASCAL} + +unit Timer; +interface +{$setc UNIVERSAL_INTERFACES_VERSION := $0342} +{$setc GAP_INTERFACES_VERSION := $0200} + +{$ifc not defined USE_CFSTR_CONSTANT_MACROS} + {$setc USE_CFSTR_CONSTANT_MACROS := TRUE} +{$endc} + +{$ifc defined CPUPOWERPC and defined CPUI386} + {$error Conflicting initial definitions for CPUPOWERPC and CPUI386} +{$endc} +{$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN} + {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN} +{$endc} + +{$ifc not defined __ppc__ and defined CPUPOWERPC} + {$setc __ppc__ := 1} +{$elsec} + {$setc __ppc__ := 0} +{$endc} +{$ifc not defined __i386__ and defined CPUI386} + {$setc __i386__ := 1} +{$elsec} + {$setc __i386__ := 0} +{$endc} + +{$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__} + {$error Conflicting definitions for __ppc__ and __i386__} +{$endc} + +{$ifc defined __ppc__ and __ppc__} + {$setc TARGET_CPU_PPC := TRUE} + {$setc TARGET_CPU_X86 := FALSE} +{$elifc defined __i386__ and __i386__} + {$setc TARGET_CPU_PPC := FALSE} + {$setc TARGET_CPU_X86 := TRUE} +{$elsec} + {$error Neither __ppc__ nor __i386__ is defined.} +{$endc} +{$setc TARGET_CPU_PPC_64 := FALSE} + +{$ifc defined FPC_BIG_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := TRUE} + {$setc TARGET_RT_LITTLE_ENDIAN := FALSE} +{$elifc defined FPC_LITTLE_ENDIAN} + {$setc TARGET_RT_BIG_ENDIAN := FALSE} + {$setc TARGET_RT_LITTLE_ENDIAN := TRUE} +{$elsec} + {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.} +{$endc} +{$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE} +{$setc CALL_NOT_IN_CARBON := FALSE} +{$setc OLDROUTINENAMES := FALSE} +{$setc OPAQUE_TOOLBOX_STRUCTS := TRUE} +{$setc OPAQUE_UPP_TYPES := TRUE} +{$setc OTCARBONAPPLICATION := TRUE} +{$setc OTKERNEL := FALSE} +{$setc PM_USE_SESSION_APIS := TRUE} +{$setc TARGET_API_MAC_CARBON := TRUE} +{$setc TARGET_API_MAC_OS8 := FALSE} +{$setc TARGET_API_MAC_OSX := TRUE} +{$setc TARGET_CARBON := TRUE} +{$setc TARGET_CPU_68K := FALSE} +{$setc TARGET_CPU_MIPS := FALSE} +{$setc TARGET_CPU_SPARC := FALSE} +{$setc TARGET_OS_MAC := TRUE} +{$setc TARGET_OS_UNIX := FALSE} +{$setc TARGET_OS_WIN32 := FALSE} +{$setc TARGET_RT_MAC_68881 := FALSE} +{$setc TARGET_RT_MAC_CFM := FALSE} +{$setc TARGET_RT_MAC_MACHO := TRUE} +{$setc TYPED_FUNCTION_POINTERS := TRUE} +{$setc TYPE_BOOL := FALSE} +{$setc TYPE_EXTENDED := FALSE} +{$setc TYPE_LONGLONG := TRUE} +uses MacTypes,ConditionalMacros,OSUtils; + + +{$ALIGN MAC68K} + + +const + { high bit of qType is set if task is active } + kTMTaskActive = $00008000; + + +type + TMTaskPtr = ^TMTask; +{$ifc TYPED_FUNCTION_POINTERS} + TimerProcPtr = procedure(tmTaskPtr_: TMTaskPtr); +{$elsec} + TimerProcPtr = Register68kProcPtr; +{$endc} + +{$ifc OPAQUE_UPP_TYPES} + TimerUPP = ^SInt32; { an opaque UPP } +{$elsec} + TimerUPP = UniversalProcPtr; +{$endc} + TMTask = record + qLink: QElemPtr; + qType: SInt16; + tmAddr: TimerUPP; + tmCount: SInt32; + tmWakeUp: SInt32; + tmReserved: SInt32; + end; + + { + * InsTime() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure InsTime(tmTaskPtr: QElemPtr); external name '_InsTime'; +{ + * InsXTime() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure InsXTime(tmTaskPtr: QElemPtr); external name '_InsXTime'; +{ + * PrimeTime() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure PrimeTime(tmTaskPtr: QElemPtr; count: SInt32); external name '_PrimeTime'; +{ + * RmvTime() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure RmvTime(tmTaskPtr: QElemPtr); external name '_RmvTime'; +{ InstallTimeTask, InstallXTimeTask, PrimeTimeTask and RemoveTimeTask work } +{ just like InsTime, InsXTime, PrimeTime, and RmvTime except that they } +{ return an OSErr result. } +{ + * InstallTimeTask() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 9.1 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + } +function InstallTimeTask(tmTaskPtr: QElemPtr): OSErr; external name '_InstallTimeTask'; +{ + * InstallXTimeTask() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 9.1 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + } +function InstallXTimeTask(tmTaskPtr: QElemPtr): OSErr; external name '_InstallXTimeTask'; +{ + * PrimeTimeTask() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 9.1 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + } +function PrimeTimeTask(tmTaskPtr: QElemPtr; count: SInt32): OSErr; external name '_PrimeTimeTask'; +{ + * RemoveTimeTask() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 9.1 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + } +function RemoveTimeTask(tmTaskPtr: QElemPtr): OSErr; external name '_RemoveTimeTask'; +{ + * Microseconds() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure Microseconds(var microTickCount: UnsignedWide); external name '_Microseconds'; +const + uppTimerProcInfo = $0000B802; + { + * NewTimerUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +function NewTimerUPP(userRoutine: TimerProcPtr): TimerUPP; external name '_NewTimerUPP'; { old name was NewTimerProc } +{ + * DisposeTimerUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure DisposeTimerUPP(userUPP: TimerUPP); external name '_DisposeTimerUPP'; +{ + * InvokeTimerUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + } +procedure InvokeTimerUPP(tmTaskPtr_: TMTaskPtr; userRoutine: TimerUPP); external name '_InvokeTimerUPP'; { old name was CallTimerProc } + + +{$ALIGN MAC68K} + + +end. |