42dd63ef3a7da3101e2f37e6f5d6620cec9186c2
[des2015.git] / mart / ex02 / ex02b.c
1 #include <stdio.h>
2 #include <signal.h>
3 #include <unistd.h>
4 #include <sys/mman.h>
5
6 #include <native/task.h>
7 #include <native/timer.h>
8
9 #include <rtdk.h>
10
11 RT_TASK task1;
12 RT_TASK task2;
13 RT_TASK task3;
14 RT_TASK task4;
15 RT_TASK task5;
16
17 void demo(void *arg)
18 {
19 int num = *(int *)arg;
20 RT_TASK *curtask;
21 RT_TASK_INFO curtaskinfo;
22 curtask=rt_task_self();
23 rt_task_inquire(curtask,&curtaskinfo);
24 rt_printf("Task name: %s with num %d \n",
25 curtaskinfo.name, num);
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 rt_task_create(&task4, "t4", 0, 50, 0);
38 rt_task_create(&task5, "t5", 0, 50, 0);
39
40 int num1 = 42;
41 int num2 = 43;
42 int num3 = 44;
43 int num4 = 45;
44 int num5 = 46;
45
46 rt_task_start(&task1, &demo, (void *)&num1);
47 rt_task_start(&task2, &demo, (void *)&num2);
48 rt_task_start(&task3, &demo, (void *)&num3);
49 rt_task_start(&task4, &demo, (void *)&num4);
50 rt_task_start(&task5, &demo, (void *)&num5);
51 }