update ex11
[des2015.git] / mart / xenomai / ex01 / ex01.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 RT_TASK demo_task;
11
12 void demo(void *arg)
13 {
14 RT_TASK *curtask;
15 RT_TASK_INFO curtaskinfo;
16
17 // hello world
18 rt_printf("Hello World!\n");
19
20 // inquire current task
21 curtask=rt_task_self();
22 rt_task_inquire(curtask,&curtaskinfo);
23
24 // print task name
25 rt_printf("Task name : %s \n", curtaskinfo.name);
26 }
27
28 int main(int argc, char* argv[])
29 {
30 char str[10] ;
31
32 // Perform auto-init of rt_print buffers if the task doesn't do so
33 rt_print_auto_init(1);
34
35 // Lock memory : avoid memory swapping for this program
36 mlockall(MCL_CURRENT|MCL_FUTURE);
37
38 rt_printf("start task\n");
39
40 /*
41 * Arguments: &task,
42 * name,
43 * stack size (0=default),
44 * priority,
45 * mode (FPU, start suspended, ...)
46 */
47 sprintf(str,"hello");
48 rt_task_create(&demo_task, str, 0, 50, 0);
49
50 /*
51 * Arguments: &task,
52 * task function,
53 * function argument
54 */
55 rt_task_start(&demo_task, &demo, 0);
56 }