a9fd35044e672369164ff01380d4df48ea5e4269
7 #include <native/task.h>
8 #include <native/timer.h>
9 #include <native/intr.h>
14 #define TESTSAMPLES 20
21 //Register as interrupt handler
23 rt_intr_create(&intr
, NULL
, LPT1IRQ
, 0);
25 //Measure average time of the clock
26 RTIME dur
= rt_timer_read();
28 for(i
= 0; i
<TESTSAMPLES
; i
++){
29 rt_intr_wait(&intr
, TM_INFINITE
);
31 dur
= rt_timer_read() / TESTSAMPLES
;
32 rt_printf("%d interrupts: average time: %.2f\n", TESTSAMPLES
, dur
);
36 rt_intr_wait(&intr
, TM_INFINITE
);
40 int main(int argc
, char* argv
[])
42 rt_print_auto_init(1);
43 mlockall(MCL_CURRENT
| MCL_FUTURE
);
45 // Get permission to write to parallel port
48 outb(inb(0x37A) | 0x10, 0x37A);
50 rt_task_create(&task
, NULL
, 0, 50, 0);
51 rt_task_start(&task
, &taskf
, 0);