Xenomai API  2.6.5
syscall.h
1 /*
2  * Copyright (C) 2004 Philippe Gerum <[email protected]>.
3  *
4  * Xenomai is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * Xenomai is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with Xenomai; if not, write to the Free Software Foundation,
16  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17  */
18 
19 #ifndef _NATIVE_SYSCALL_H
20 #define _NATIVE_SYSCALL_H
21 
22 #ifndef __XENO_SIM__
23 #include <asm/xenomai/syscall.h>
24 #endif /* __XENO_SIM__ */
25 
26 #define __native_task_create 0
27 #define __native_task_bind 1
28 #define __native_task_start 2
29 #define __native_task_suspend 3
30 #define __native_task_resume 4
31 #define __native_task_delete 5
32 #define __native_task_yield 6
33 #define __native_task_set_periodic 7
34 #define __native_task_wait_period 8
35 #define __native_task_set_priority 9
36 #define __native_task_sleep 10
37 #define __native_task_sleep_until 11
38 #define __native_task_unblock 12
39 #define __native_task_inquire 13
40 #define __native_task_notify 14
41 #define __native_task_set_mode 15
42 #define __native_task_self 16
43 #define __native_task_slice 17
44 #define __native_task_send 18
45 #define __native_task_receive 19
46 #define __native_task_reply 20
47 #define __native_timer_set_mode 21
48 #define __native_unimp_22 22
49 #define __native_timer_read 23
50 #define __native_timer_tsc 24
51 #define __native_timer_ns2ticks 25
52 #define __native_timer_ticks2ns 26
53 #define __native_timer_inquire 27
54 #define __native_timer_spin 28
55 #define __native_sem_create 29
56 #define __native_sem_bind 30
57 #define __native_sem_delete 31
58 #define __native_sem_p 32
59 #define __native_sem_v 33
60 #define __native_sem_broadcast 34
61 #define __native_sem_inquire 35
62 #define __native_event_create 36
63 #define __native_event_bind 37
64 #define __native_event_delete 38
65 #define __native_event_wait 39
66 #define __native_event_signal 40
67 #define __native_event_clear 41
68 #define __native_event_inquire 42
69 #define __native_mutex_create 43
70 #define __native_mutex_bind 44
71 #define __native_mutex_delete 45
72 #define __native_mutex_acquire 46
73 #define __native_mutex_release 47
74 #define __native_mutex_inquire 48
75 #define __native_cond_create 49
76 #define __native_cond_bind 50
77 #define __native_cond_delete 51
78 #define __native_cond_wait_prologue 52
79 #define __native_cond_signal 53
80 #define __native_cond_broadcast 54
81 #define __native_cond_inquire 55
82 #define __native_queue_create 56
83 #define __native_queue_bind 57
84 #define __native_queue_delete 58
85 #define __native_queue_alloc 59
86 #define __native_queue_free 60
87 #define __native_queue_send 61
88 #define __native_queue_receive 62
89 #define __native_queue_inquire 63
90 #define __native_heap_create 64
91 #define __native_heap_bind 65
92 #define __native_heap_delete 66
93 #define __native_heap_alloc 67
94 #define __native_heap_free 68
95 #define __native_heap_inquire 69
96 #define __native_alarm_create 70
97 #define __native_alarm_delete 71
98 #define __native_alarm_start 72
99 #define __native_alarm_stop 73
100 #define __native_alarm_wait 74
101 #define __native_alarm_inquire 75
102 #define __native_intr_create 76
103 #define __native_intr_bind 77
104 #define __native_intr_delete 78
105 #define __native_intr_wait 79
106 #define __native_intr_enable 80
107 #define __native_intr_disable 81
108 #define __native_intr_inquire 82
109 #define __native_pipe_create 83
110 #define __native_pipe_bind 84
111 #define __native_pipe_delete 85
112 #define __native_pipe_read 86
113 #define __native_pipe_write 87
114 #define __native_pipe_stream 88
115 #define __native_unimp_89 89
116 #define __native_io_get_region 90
117 #define __native_io_put_region 91
118 #define __native_unimp_92 92
119 #define __native_unimp_93 93
120 #define __native_queue_write 94
121 #define __native_queue_read 95
122 #define __native_buffer_create 96
123 #define __native_buffer_bind 97
124 #define __native_buffer_delete 98
125 #define __native_buffer_read 99
126 #define __native_buffer_write 100
127 #define __native_buffer_clear 101
128 #define __native_buffer_inquire 102
129 #define __native_queue_flush 103
130 #define __native_cond_wait_epilogue 104
131 
132 struct rt_arg_bulk {
133 
134  u_long a1;
135  u_long a2;
136  u_long a3;
137  u_long a4;
138  u_long a5;
139  u_long a6;
140 };
141 
142 #if defined (__KERNEL__) || defined(__XENO_SIM__)
143 
144 #ifdef __cplusplus
145 extern "C" {
146 #endif
147 
148 #ifdef CONFIG_XENO_OPT_PERVASIVE
149 
150 int __native_syscall_init(void);
151 
152 void __native_syscall_cleanup(void);
153 
154 #else /* !CONFIG_XENO_OPT_PERVASIVE */
155 
156 #define __native_syscall_init() ({ 0; })
157 #define __native_syscall_cleanup() do { } while(0)
158 
159 #endif /* !CONFIG_XENO_OPT_PERVASIVE */
160 
161 #ifdef __cplusplus
162 }
163 #endif
164 
165 #endif /* __KERNEL__ || __XENO_SIM__ */
166 
167 #endif /* _NATIVE_SYSCALL_H */