1 {
2      File:       CarbonCore/Timer.h
3 
4      Contains:   Time Manager interfaces.
5                  The contents of this header file are deprecated.
6 
7      Copyright:  � 1985-2011 by Apple Inc. All rights reserved.
8 }
9 {
10     Modified for use with Free Pascal
11     Version 308
12     Please report any bugs to <gpc@microbizz.nl>
13 }
14 
15 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
16 {$mode macpas}
17 {$modeswitch cblocks}
18 {$packenum 1}
19 {$macro on}
20 {$inline on}
21 {$calling mwpascal}
22 
23 unit Timer;
24 interface
25 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
26 {$setc GAP_INTERFACES_VERSION := $0308}
27 
28 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
29     {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
30 {$endc}
31 
32 {$ifc defined CPUPOWERPC and defined CPUI386}
33 	{$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
34 {$endc}
35 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
36 	{$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
37 {$endc}
38 
39 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
40 	{$setc __ppc__ := 1}
41 {$elsec}
42 	{$setc __ppc__ := 0}
43 {$endc}
44 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
45 	{$setc __ppc64__ := 1}
46 {$elsec}
47 	{$setc __ppc64__ := 0}
48 {$endc}
49 {$ifc not defined __i386__ and defined CPUI386}
50 	{$setc __i386__ := 1}
51 {$elsec}
52 	{$setc __i386__ := 0}
53 {$endc}
54 {$ifc not defined __x86_64__ and defined CPUX86_64}
55 	{$setc __x86_64__ := 1}
56 {$elsec}
57 	{$setc __x86_64__ := 0}
58 {$endc}
59 {$ifc not defined __arm__ and defined CPUARM}
60 	{$setc __arm__ := 1}
61 {$elsec}
62 	{$setc __arm__ := 0}
63 {$endc}
64 {$ifc not defined __arm64__ and defined CPUAARCH64}
65   {$setc __arm64__ := 1}
66 {$elsec}
67   {$setc __arm64__ := 0}
68 {$endc}
69 
70 {$ifc defined cpu64}
71   {$setc __LP64__ := 1}
72 {$elsec}
73   {$setc __LP64__ := 0}
74 {$endc}
75 
76 
77 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
78 	{$error Conflicting definitions for __ppc__ and __i386__}
79 {$endc}
80 
81 {$ifc defined __ppc__ and __ppc__}
82 	{$setc TARGET_CPU_PPC := TRUE}
83 	{$setc TARGET_CPU_PPC64 := FALSE}
84 	{$setc TARGET_CPU_X86 := FALSE}
85 	{$setc TARGET_CPU_X86_64 := FALSE}
86 	{$setc TARGET_CPU_ARM := FALSE}
87 	{$setc TARGET_CPU_ARM64 := FALSE}
88 	{$setc TARGET_OS_MAC := TRUE}
89 	{$setc TARGET_OS_IPHONE := FALSE}
90 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
91 	{$setc TARGET_OS_EMBEDDED := FALSE}
92 {$elifc defined __ppc64__ and __ppc64__}
93 	{$setc TARGET_CPU_PPC := FALSE}
94 	{$setc TARGET_CPU_PPC64 := TRUE}
95 	{$setc TARGET_CPU_X86 := FALSE}
96 	{$setc TARGET_CPU_X86_64 := FALSE}
97 	{$setc TARGET_CPU_ARM := FALSE}
98 	{$setc TARGET_CPU_ARM64 := FALSE}
99 	{$setc TARGET_OS_MAC := TRUE}
100 	{$setc TARGET_OS_IPHONE := FALSE}
101 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
102 	{$setc TARGET_OS_EMBEDDED := FALSE}
103 {$elifc defined __i386__ and __i386__}
104 	{$setc TARGET_CPU_PPC := FALSE}
105 	{$setc TARGET_CPU_PPC64 := FALSE}
106 	{$setc TARGET_CPU_X86 := TRUE}
107 	{$setc TARGET_CPU_X86_64 := FALSE}
108 	{$setc TARGET_CPU_ARM := FALSE}
109 	{$setc TARGET_CPU_ARM64 := FALSE}
110 {$ifc defined iphonesim}
111  	{$setc TARGET_OS_MAC := FALSE}
112 	{$setc TARGET_OS_IPHONE := TRUE}
113 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
114 {$elsec}
115 	{$setc TARGET_OS_MAC := TRUE}
116 	{$setc TARGET_OS_IPHONE := FALSE}
117 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
118 {$endc}
119 	{$setc TARGET_OS_EMBEDDED := FALSE}
120 {$elifc defined __x86_64__ and __x86_64__}
121 	{$setc TARGET_CPU_PPC := FALSE}
122 	{$setc TARGET_CPU_PPC64 := FALSE}
123 	{$setc TARGET_CPU_X86 := FALSE}
124 	{$setc TARGET_CPU_X86_64 := TRUE}
125 	{$setc TARGET_CPU_ARM := FALSE}
126 	{$setc TARGET_CPU_ARM64 := FALSE}
127 {$ifc defined iphonesim}
128  	{$setc TARGET_OS_MAC := FALSE}
129 	{$setc TARGET_OS_IPHONE := TRUE}
130 	{$setc TARGET_IPHONE_SIMULATOR := TRUE}
131 {$elsec}
132 	{$setc TARGET_OS_MAC := TRUE}
133 	{$setc TARGET_OS_IPHONE := FALSE}
134 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
135 {$endc}
136 	{$setc TARGET_OS_EMBEDDED := FALSE}
137 {$elifc defined __arm__ and __arm__}
138 	{$setc TARGET_CPU_PPC := FALSE}
139 	{$setc TARGET_CPU_PPC64 := FALSE}
140 	{$setc TARGET_CPU_X86 := FALSE}
141 	{$setc TARGET_CPU_X86_64 := FALSE}
142 	{$setc TARGET_CPU_ARM := TRUE}
143 	{$setc TARGET_CPU_ARM64 := FALSE}
144 	{$setc TARGET_OS_MAC := FALSE}
145 	{$setc TARGET_OS_IPHONE := TRUE}
146 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
147 	{$setc TARGET_OS_EMBEDDED := TRUE}
148 {$elifc defined __arm64__ and __arm64__}
149 	{$setc TARGET_CPU_PPC := FALSE}
150 	{$setc TARGET_CPU_PPC64 := FALSE}
151 	{$setc TARGET_CPU_X86 := FALSE}
152 	{$setc TARGET_CPU_X86_64 := FALSE}
153 	{$setc TARGET_CPU_ARM := FALSE}
154 	{$setc TARGET_CPU_ARM64 := TRUE}
155 {$ifc defined ios}
156 	{$setc TARGET_OS_MAC := FALSE}
157 	{$setc TARGET_OS_IPHONE := TRUE}
158 	{$setc TARGET_OS_EMBEDDED := TRUE}
159 {$elsec}
160 	{$setc TARGET_OS_MAC := TRUE}
161 	{$setc TARGET_OS_IPHONE := FALSE}
162 	{$setc TARGET_OS_EMBEDDED := FALSE}
163 {$endc}
164 	{$setc TARGET_IPHONE_SIMULATOR := FALSE}
165 {$elsec}
166 	{$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
167 {$endc}
168 
169 {$ifc defined __LP64__ and __LP64__ }
170   {$setc TARGET_CPU_64 := TRUE}
171 {$elsec}
172   {$setc TARGET_CPU_64 := FALSE}
173 {$endc}
174 
175 {$ifc defined FPC_BIG_ENDIAN}
176 	{$setc TARGET_RT_BIG_ENDIAN := TRUE}
177 	{$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
178 {$elifc defined FPC_LITTLE_ENDIAN}
179 	{$setc TARGET_RT_BIG_ENDIAN := FALSE}
180 	{$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
181 {$elsec}
182 	{$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
183 {$endc}
184 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
185 {$setc CALL_NOT_IN_CARBON := FALSE}
186 {$setc OLDROUTINENAMES := FALSE}
187 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
188 {$setc OPAQUE_UPP_TYPES := TRUE}
189 {$setc OTCARBONAPPLICATION := TRUE}
190 {$setc OTKERNEL := FALSE}
191 {$setc PM_USE_SESSION_APIS := TRUE}
192 {$setc TARGET_API_MAC_CARBON := TRUE}
193 {$setc TARGET_API_MAC_OS8 := FALSE}
194 {$setc TARGET_API_MAC_OSX := TRUE}
195 {$setc TARGET_CARBON := TRUE}
196 {$setc TARGET_CPU_68K := FALSE}
197 {$setc TARGET_CPU_MIPS := FALSE}
198 {$setc TARGET_CPU_SPARC := FALSE}
199 {$setc TARGET_OS_UNIX := FALSE}
200 {$setc TARGET_OS_WIN32 := FALSE}
201 {$setc TARGET_RT_MAC_68881 := FALSE}
202 {$setc TARGET_RT_MAC_CFM := FALSE}
203 {$setc TARGET_RT_MAC_MACHO := TRUE}
204 {$setc TYPED_FUNCTION_POINTERS := TRUE}
205 {$setc TYPE_BOOL := FALSE}
206 {$setc TYPE_EXTENDED := FALSE}
207 {$setc TYPE_LONGLONG := TRUE}
208 uses MacTypes,ConditionalMacros,OSUtils;
209 {$endc} {not MACOSALLINCLUDE}
210 
211 
212 {$ifc TARGET_OS_MAC}
213 
214 {$ALIGN MAC68K}
215 
216 
217 {
218  *  Microseconds()
219  *
220  *  Summary:
221  *    Determines the number of microseconds that have elapsed since
222  *    system startup time.
223  *
224  *  Discussion:
225  *    Return a value representing the number of microseconds since some
226  *    point in time, usually since the system was booted.  One
227  *    microsecond is 1 * 10^-6 seconds, and so there are one million (
228  *    1,000,000 ) microseconds per second.  For reference, in one
229  *    microsecond light can travel about 850 feet in a vacuum.
230  *
231  *    Microseconds() doesn't necessarily advance while the computer is
232  *    asleep, so it should not be used for long duration timings.
233  *
234  *  Parameters:
235  *
236  *    microTickCount:
237  *      The number of microseconds elapsed since system startup.
238  *
239  *  Availability:
240  *    Mac OS X:         in version 10.0 and later in CoreServices.framework
241  *    CarbonLib:        in CarbonLib 1.0 and later
242  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
243  }
244 procedure Microseconds( var microTickCount: UnsignedWide ); external name '_Microseconds';
245 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA) *)
246 
247 
248 {***************************************************************************
249 
250     The remaining functions in this file have all been deprecated on Mac
251     OS X 10.4.  There are other solutions which perform better, and consume
252     fewer system resources which are recommended.  The Time Manager on
253     Mac OS X does not have exactly the same behavior as it did on Mac OS 9
254     and earlier, especially in a multithreaded process.
255 
256     Instead of using the Time Manager functions, you should consider
257     the following:
258 
259     1.  If you want a function to be called periodically from an
260         application, then look at using a CFRunLoopTimer ( in CFRunLoop.h ).
261 
262     2.  In a Cocoa application, you can use the NSTimer object to get
263         both absolute and interval-based periodic callbacks.
264 
265     3.  If you need something to happen periodically, and don't have a
266         CFRunLoop in your application, you can create a thread which sleeps
267         for whatever interval you want, then does something and sleeps again
268         ( or exits, or whatever. )
269         Conceptually, this is all the current Time Manager does -- when you
270         prime a task, a thread is created which sleeps on a semaphore for the
271         amount of time remaining before the next earliest Time Manager task,
272         then calls the tmTask function for that task and then calculates the
273         time until the next task, ad nauseum.
274 
275     4. If you just want to delay for some period of time, and don't have
276         other threads or data which may require synchronization, you can call
277         Delay(), sleep(), usleep(), or nanosleep().
278 
279     5.
280     -
281  ***************************************************************************}
282 const
283 { high bit of qType is set if task is active }
284 	kTMTaskActive = 1 shl 15;
285 
286 type
287 	TMTaskPtr = ^TMTask;
288 	TimerProcPtr = procedure( tmTaskPtr_: TMTaskPtr );
289 	TimerUPP = TimerProcPtr;
290 	TMTask = record
291 		qLink: QElemPtr;
292 		qType: SInt16;
293 		tmAddr: TimerUPP;
294 		tmCount: SIGNEDLONG;
295 		tmWakeUp: SIGNEDLONG;
296 		tmReserved: SIGNEDLONG;
297 	end;
298 
299 {
300  *  InsTime()   *** DEPRECATED ***
301  *
302  *  Discussion:
303  *    Use InstallTimeTask() instead of this function.
304  *
305  *  Availability:
306  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
307  *    CarbonLib:        in CarbonLib 1.0 and later
308  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
309  }
310 procedure InsTime( tmTaskPtr: QElemPtr ); external name '_InsTime';
311 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
312 
313 
314 {
315  *  InsXTime()   *** DEPRECATED ***
316  *
317  *  Discussion:
318  *    Use InstallXTimeTask() instead of this function.
319  *
320  *  Availability:
321  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
322  *    CarbonLib:        in CarbonLib 1.0 and later
323  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
324  }
325 procedure InsXTime( tmTaskPtr: QElemPtr ); external name '_InsXTime';
326 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
327 
328 
329 {
330  *  PrimeTime()   *** DEPRECATED ***
331  *
332  *  Discussion:
333  *    Use PrimeTimeTask() instead of this function.
334  *
335  *  Availability:
336  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
337  *    CarbonLib:        in CarbonLib 1.0 and later
338  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
339  }
340 procedure PrimeTime( tmTaskPtr: QElemPtr; count: SIGNEDLONG ); external name '_PrimeTime';
341 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
342 
343 
344 {
345  *  RmvTime()   *** DEPRECATED ***
346  *
347  *  Discussion:
348  *    Use RemoveTimeTask() instead of this function.
349  *
350  *  Availability:
351  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
352  *    CarbonLib:        in CarbonLib 1.0 and later
353  *    Non-Carbon CFM:   in InterfaceLib 7.1 and later
354  }
355 procedure RmvTime( tmTaskPtr: QElemPtr ); external name '_RmvTime';
356 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
357 
358 
359 {
360  *  InstallTimeTask()   *** DEPRECATED ***
361  *
362  *  Summary:
363  *    Installs a task, taking advantage of the drift-free,
364  *    fixed-frequency timing services of the extended Time Manager.
365  *
366  *  Discussion:
367  *    The InstallXTimeTask function adds the Time Manager task
368  *    structure specified by tmTaskPtr to the Time Manager queue. Use
369  *    InstallXTimeTask only if you wish to use the drift-free,
370  *    fixed-frequency timing services of the extended Time Manager; use
371  *    InstallTimeTask in all other cases. The tmTaskPtr parameter must
372  *    point to an extended Time Manager task structure. Your
373  *    application must fill in the tmAddr field of that task. You
374  *    should set the tmWakeUp and tmReserved fields to 0 the first time
375  *    you call InsXTime.
376  *    With the extended Time Manager, you can set tmAddr to NULL if you
377  *    do not want a task to execute when the delay passed to PrimeTime
378  *    expires. Also, InsXTime resets the high-order bit of the qType
379  *    field to 0.
380  *    The InstallXTimeTask function, which returns a value of type
381  *    OSErr, takes the place of InsXTime.
382  *
383  *  Parameters:
384  *
385  *    tmTaskPtr:
386  *      A pointer to an extended task structure to be installed in the
387  *      queue.
388  *
389  *  Availability:
390  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
391  *    CarbonLib:        in CarbonLib 1.0.2 and later
392  *    Non-Carbon CFM:   in InterfaceLib 9.1 and later
393  }
InstallTimeTasknull394 function InstallTimeTask( tmTaskPtr: QElemPtr ): OSErr; external name '_InstallTimeTask';
395 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
396 
397 
398 {
399  *  InstallXTimeTask()   *** DEPRECATED ***
400  *
401  *  Summary:
402  *    Installs a task, taking advantage of the drift-free,
403  *    fixed-frequency timing services of the extended Time Manager.
404  *
405  *  Discussion:
406  *    The InstallXTimeTask function adds the Time Manager task
407  *    structure specified by tmTaskPtr to the Time Manager queue. Use
408  *    InstallXTimeTask only if you wish to use the drift-free,
409  *    fixed-frequency timing services of the extended Time Manager; use
410  *    InstallTimeTask in all other cases. The tmTaskPtr parameter must
411  *    point to an extended Time Manager task structure. Your
412  *    application must fill in the tmAddr field of that task. You
413  *    should set the tmWakeUp and tmReserved fields to 0 the first time
414  *    you call InsXTime.
415  *    With the extended Time Manager, you can set tmAddr to NULL if you
416  *    do not want a task to execute when the delay passed to PrimeTime
417  *    expires. Also, InsXTime resets the high-order bit of the qType
418  *    field to 0.
419  *    The InstallXTimeTask function, which returns a value of type
420  *    OSErr, takes the place of InsXTime.
421  *
422  *
423  *
424  *
425  *
426  *
427  *    *************************************************************
428  *     See the discussion at the top of this file for information about
429  *    why this call is deprecated on Mac OS X, and what other system
430  *    facilities you can use in your code instead of the Time Manager.
431  *    *****************************************************************
432  *
433  *  Parameters:
434  *
435  *    tmTaskPtr:
436  *      A pointer to an extended task structure to be installed in the
437  *      queue.
438  *
439  *  Availability:
440  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
441  *    CarbonLib:        in CarbonLib 1.0.2 and later
442  *    Non-Carbon CFM:   in InterfaceLib 9.1 and later
443  }
InstallXTimeTasknull444 function InstallXTimeTask( tmTaskPtr: QElemPtr ): OSErr; external name '_InstallXTimeTask';
445 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
446 
447 
448 {
449  *  PrimeTimeTask()   *** DEPRECATED ***
450  *
451  *  Summary:
452  *    Activates a task in the Time Manager queue.
453  *
454  *  Discussion:
455  *    The PrimeTimeTask function schedules the task specified by the
456  *    tmAddr field of the structure pointed to by the tmTaskPtr
457  *    parameter for execution after the delay specified by the count
458  *    parameter has elapsed.
459  *
460  *    If the count parameter is a positive value, it is interpreted as
461  *    milliseconds. If count is a negative value, it is interpreted in
462  *    negated microseconds. Microsecond delays are allowable only in
463  *    the revised and extended Time Managers.
464  *
465  *    The task record specified by the tmTaskPtr parameter must already
466  *    be installed in the queue (by a previous call to the functions
467  *    InstallTimeTask or InstallXTimeTask) before your application
468  *    calls the PrimeTimeTask function. The PrimeTimeTask function
469  *    returns immediately, and the specified task is executed after the
470  *    specified delay has elapsed. If you call the PrimeTimeTask
471  *    function with a time delay of 0, the task runs as soon as
472  *    interrupts are enabled.
473  *
474  *    In the revised and extended Time Managers, the PrimeTimeTask
475  *    function sets the high-order bit of the qType field to 1. In
476  *    addition, any value of the count parameter that exceeds the
477  *    maximum millisecond delay is reduced to the maximum. If you stop
478  *    an unexpired task (by calling the function RemoveTimeTask) and
479  *    then reinstall it (by calling the InstallXTimeTask function), you
480  *    can continue the previous delay by calling the PrimeTimeTask
481  *    function with the count parameter set to 0.
482  *
483  *
484  *
485  *
486  *
487  *
488  *    *************************************************************
489  *     See the discussion at the top of this file for information about
490  *    why this call is deprecated on Mac OS X, and what other system
491  *    facilities you can use in your code instead of the Time Manager.
492  *    *****************************************************************
493  *
494  *  Parameters:
495  *
496  *    tmTaskPtr:
497  *      A pointer to a task structure already installed in the queue.
498  *
499  *    count:
500  *      The desired delay before execution of the task.
501  *
502  *  Availability:
503  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
504  *    CarbonLib:        in CarbonLib 1.0.2 and later
505  *    Non-Carbon CFM:   in InterfaceLib 9.1 and later
506  }
PrimeTimeTasknull507 function PrimeTimeTask( tmTaskPtr: QElemPtr; count: SIGNEDLONG ): OSErr; external name '_PrimeTimeTask';
508 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
509 
510 
511 {
512  *  RemoveTimeTask()   *** DEPRECATED ***
513  *
514  *  Summary:
515  *    Removes a task from the Time Manager queue.
516  *
517  *  Discussion:
518  *    The RemoveTimeTask function removes the Time Manager task
519  *    structure specified by the tmTaskPtr parameter from the Time
520  *    Manager queue. In both the revised and extended Time Managers, if
521  *    the specified task record is active (that is, if it has been
522  *    activated but the specified time has not yet elapsed), the
523  *    tmCount field of the task structure returns the amount of time
524  *    remaining. To provide the greatest accuracy, the unused time is
525  *    reported as negated microseconds if that value is small enough to
526  *    fit into the tmCount field (even if the delay was originally
527  *    specified in milliseconds); otherwise, the unused time is
528  *    reported in positive milliseconds. If the time has already
529  *    expired, the tmCount field contains 0.
530  *
531  *    In the revised and extended Time Managers, the RemoveTimeTask
532  *    function sets the high-order bit of the qType field to 0.
533  *
534  *
535  *
536  *
537  *
538  *
539  *    *************************************************************
540  *     See the discussion at the top of this file for information about
541  *    why this call is deprecated on Mac OS X, and what other system
542  *    facilities you can use in your code instead of the Time Manager.
543  *    *****************************************************************
544  *
545  *  Parameters:
546  *
547  *    tmTaskPtr:
548  *      A pointer to a task structure to be removed from the queue.
549  *
550  *  Availability:
551  *    Mac OS X:         in version 10.0 and later in CoreServices.framework but deprecated in 10.4
552  *    CarbonLib:        in CarbonLib 1.0.2 and later
553  *    Non-Carbon CFM:   in InterfaceLib 9.1 and later
554  }
RemoveTimeTasknull555 function RemoveTimeTask( tmTaskPtr: QElemPtr ): OSErr; external name '_RemoveTimeTask';
556 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_NA, __IPHONE_NA) *)
557 
558 
559 {
560  *  NewTimerUPP()
561  *
562  *  Availability:
563  *    Mac OS X:         in version 10.0 and later in CoreServices.framework
564  *    CarbonLib:        in CarbonLib 1.0 and later
565  *    Non-Carbon CFM:   available as macro/inline
566  }
NewTimerUPPnull567 function NewTimerUPP( userRoutine: TimerProcPtr ): TimerUPP; external name '_NewTimerUPP';
568 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA) *)
569 
570 {
571  *  DisposeTimerUPP()
572  *
573  *  Availability:
574  *    Mac OS X:         in version 10.0 and later in CoreServices.framework
575  *    CarbonLib:        in CarbonLib 1.0 and later
576  *    Non-Carbon CFM:   available as macro/inline
577  }
578 procedure DisposeTimerUPP( userUPP: TimerUPP ); external name '_DisposeTimerUPP';
579 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA) *)
580 
581 {
582  *  InvokeTimerUPP()
583  *
584  *  Availability:
585  *    Mac OS X:         in version 10.0 and later in CoreServices.framework
586  *    CarbonLib:        in CarbonLib 1.0 and later
587  *    Non-Carbon CFM:   available as macro/inline
588  }
589 procedure InvokeTimerUPP( tmTaskPtr_: TMTaskPtr; userUPP: TimerUPP ); external name '_InvokeTimerUPP';
590 (* __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA) *)
591 
592 
593 {$endc} {TARGET_OS_MAC}
594 
595 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
596 
597 end.
598 {$endc} {not MACOSALLINCLUDE}
599