X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Finclude%2Ftimers.h;h=248329868c5cf73641bea479b84493077b535e1f;hb=07ed0e7479fc741a947579d4460a25a050fc9260;hp=22dd5c6adffb277cbd4f4713dca0a9139ee8444c;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/include/timers.h b/KernelLand/Kernel/include/timers.h index 22dd5c6a..24832986 100644 --- a/KernelLand/Kernel/include/timers.h +++ b/KernelLand/Kernel/include/timers.h @@ -25,15 +25,43 @@ typedef void (tTimerCallback)(void *); * \param Callback Function to call each time * \param Argument Argument to pass to the callback */ -extern tTimer *Time_CreateTimer(int Delta, tTimerCallback *Callback, void *Argument); +extern tTimer *Time_CreateTimer(int Delta, tTimerCallback *Callback, void *Argument) DEPRECATED; + +/** + * \brief Allocate (but don't schedule) a timer object + * \param Callback Function to call (if NULL, EVENT_TIMER is delivered to the current thread) + * \param Argument Argument passed to \a Callback (ignored if \a Callback is NULL) + * \return New timer pointer + */ +extern tTimer *Time_AllocateTimer(tTimerCallback *Callback, void *Argument); + +/** + * \brief Free an allocated timer object + * \param Timer Object pointer returned by Time_AllocateTimer + */ +extern void Time_FreeTimer(tTimer *Timer); + +/** + * \brief Schedules a timer to fire in \a Delta ms + * \param Timer Timer object returned by Time_AllocateTimer + * \param Delta Time until timer fires (in milliseconds) + */ +extern void Time_ScheduleTimer(tTimer *Timer, int Delta); + /** * \brief Removed an active timer */ extern void Time_RemoveTimer(tTimer *Timer); + /** * \brief Wait for a period of milliseconds */ extern void Time_Delay(int Delay); +/** + * \brief Busy wait for a period of milliseconds + */ +extern void Time_MicroSleep(Uint16 Delay); + #endif