4 * Copyright 2005 Develer S.r.l. (http://www.develer.com/)
5 * This file is part of DevLib - See README.devlib for information.
10 * \author Bernardo Innocenti <bernie@develer.com>
12 * \brief Low-level timer module for Qt emulator (implementation).
17 *#* Revision 1.1 2005/11/27 03:58:18 bernie
18 *#* Add POSIX timer emulator.
20 *#* Revision 1.1 2005/11/27 03:06:36 bernie
21 *#* Qt timer emulation.
25 #include <cfg/compiler.h> // hptime.t
26 #include <os/hptime.h>
28 #include <signal.h> // sigaction()
29 #include <sys/time.h> // setitimer()
30 #include <string.h> // memset()
33 // Forward declaration for the user interrupt server routine.
36 /// HW dependent timer initialization.
37 extern "C" static void timer_hw_init(void)
40 memset(&sa, 0, sizeof(sa));
42 // Setup interrupt callback
43 sa.sa_handler = timer_isr;
44 sigemptyset(&sa.sa_mask);
45 sigaddset(&sa.sa_mask, SIGALRM);
46 sa.sa_flags = SA_RESTART;
47 sigaction(SIGALRM, &sa, NULL);
49 // Setup POSIX realtime timer to interrupt every 10ms.
50 static struct itimerval itv =
52 { 0, 1000 }, /* it_interval */
53 { 0, 1000 } /* it_value */
55 setitimer(ITIMER_REAL, &itv, NULL);
58 extern "C" INLINE hptime_t timer_hw_hpread(void)