Finally with a lot of zeros
[des2015.git] / mart / ex02 / ex02d.c
1 #include <stdint.h>
2 #include <stdio.h>
3 #include <signal.h>
4 #include <unistd.h>
5 #include <sys/mman.h>
6
7 #include <native/task.h>
8 #include <native/timer.h>
9
10 #include <rtdk.h>
11
12 RT_TASK task1, task2, task3;
13
14 void demo(void *arg)
15 {
16 rt_task_set_periodic(NULL, TM_NOW, *(unsigned long long *)arg);
17 rt_printf("%llu\n", *(unsigned long long *)arg);
18 RT_TASK *curtask;
19 RT_TASK_INFO curtaskinfo;
20 curtask=rt_task_self();
21 rt_task_inquire(curtask, &curtaskinfo);
22 while(1){
23 rt_printf("Task name: %s\n", curtaskinfo.name);
24 rt_task_wait_period(NULL);
25 }
26 }
27
28 int main(int argc, char* argv[])
29 {
30 rt_print_auto_init(1);
31 mlockall(MCL_CURRENT|MCL_FUTURE);
32 rt_printf("start task\n");
33
34 rt_task_create(&task1, "t1", 0, 50, 0);
35 rt_task_create(&task2, "t2", 0, 50, 0);
36 rt_task_create(&task3, "t3", 0, 50, 0);
37
38 unsigned long long num1 = 1000000000LLU;
39 unsigned long long num2 = 2000000000LLU;
40 unsigned long long num3 = 3000000000LLU;
41
42 rt_task_start(&task1, &demo, (void *)&num1);
43 rt_task_start(&task2, &demo, (void *)&num2);
44 rt_task_start(&task3, &demo, (void *)&num3);
45
46 rt_printf("end program with CRTL+C\n");
47 pause();
48 }