Xenomai API
2.5.6.1
|
00001 /* 00002 * Copyright (C) 2004 Philippe Gerum <[email protected]>. 00003 * 00004 * Xenomai is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * Xenomai is distributed in the hope that it will be useful, but 00010 * WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with Xenomai; if not, write to the Free Software Foundation, 00016 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00019 #ifndef _NATIVE_SYSCALL_H 00020 #define _NATIVE_SYSCALL_H 00021 00022 #ifndef __XENO_SIM__ 00023 #include <asm/xenomai/syscall.h> 00024 #endif /* __XENO_SIM__ */ 00025 00026 #define __native_task_create 0 00027 #define __native_task_bind 1 00028 #define __native_task_start 2 00029 #define __native_task_suspend 3 00030 #define __native_task_resume 4 00031 #define __native_task_delete 5 00032 #define __native_task_yield 6 00033 #define __native_task_set_periodic 7 00034 #define __native_task_wait_period 8 00035 #define __native_task_set_priority 9 00036 #define __native_task_sleep 10 00037 #define __native_task_sleep_until 11 00038 #define __native_task_unblock 12 00039 #define __native_task_inquire 13 00040 #define __native_task_notify 14 00041 #define __native_task_set_mode 15 00042 #define __native_task_self 16 00043 #define __native_task_slice 17 00044 #define __native_task_send 18 00045 #define __native_task_receive 19 00046 #define __native_task_reply 20 00047 #define __native_timer_set_mode 21 00048 #define __native_unimp_22 22 00049 #define __native_timer_read 23 00050 #define __native_timer_tsc 24 00051 #define __native_timer_ns2ticks 25 00052 #define __native_timer_ticks2ns 26 00053 #define __native_timer_inquire 27 00054 #define __native_timer_spin 28 00055 #define __native_sem_create 29 00056 #define __native_sem_bind 30 00057 #define __native_sem_delete 31 00058 #define __native_sem_p 32 00059 #define __native_sem_v 33 00060 #define __native_sem_broadcast 34 00061 #define __native_sem_inquire 35 00062 #define __native_event_create 36 00063 #define __native_event_bind 37 00064 #define __native_event_delete 38 00065 #define __native_event_wait 39 00066 #define __native_event_signal 40 00067 #define __native_event_clear 41 00068 #define __native_event_inquire 42 00069 #define __native_mutex_create 43 00070 #define __native_mutex_bind 44 00071 #define __native_mutex_delete 45 00072 #define __native_mutex_acquire 46 00073 #define __native_mutex_release 47 00074 #define __native_mutex_inquire 48 00075 #define __native_cond_create 49 00076 #define __native_cond_bind 50 00077 #define __native_cond_delete 51 00078 #define __native_cond_wait_prologue 52 00079 #define __native_cond_signal 53 00080 #define __native_cond_broadcast 54 00081 #define __native_cond_inquire 55 00082 #define __native_queue_create 56 00083 #define __native_queue_bind 57 00084 #define __native_queue_delete 58 00085 #define __native_queue_alloc 59 00086 #define __native_queue_free 60 00087 #define __native_queue_send 61 00088 #define __native_queue_receive 62 00089 #define __native_queue_inquire 63 00090 #define __native_heap_create 64 00091 #define __native_heap_bind 65 00092 #define __native_heap_delete 66 00093 #define __native_heap_alloc 67 00094 #define __native_heap_free 68 00095 #define __native_heap_inquire 69 00096 #define __native_alarm_create 70 00097 #define __native_alarm_delete 71 00098 #define __native_alarm_start 72 00099 #define __native_alarm_stop 73 00100 #define __native_alarm_wait 74 00101 #define __native_alarm_inquire 75 00102 #define __native_intr_create 76 00103 #define __native_intr_bind 77 00104 #define __native_intr_delete 78 00105 #define __native_intr_wait 79 00106 #define __native_intr_enable 80 00107 #define __native_intr_disable 81 00108 #define __native_intr_inquire 82 00109 #define __native_pipe_create 83 00110 #define __native_pipe_bind 84 00111 #define __native_pipe_delete 85 00112 #define __native_pipe_read 86 00113 #define __native_pipe_write 87 00114 #define __native_pipe_stream 88 00115 #define __native_unimp_89 89 00116 #define __native_io_get_region 90 00117 #define __native_io_put_region 91 00118 #define __native_unimp_92 92 00119 #define __native_unimp_93 93 00120 #define __native_queue_write 94 00121 #define __native_queue_read 95 00122 #define __native_buffer_create 96 00123 #define __native_buffer_bind 97 00124 #define __native_buffer_delete 98 00125 #define __native_buffer_read 99 00126 #define __native_buffer_write 100 00127 #define __native_buffer_clear 101 00128 #define __native_buffer_inquire 102 00129 #define __native_queue_flush 103 00130 #define __native_cond_wait_epilogue 104 00131 00132 struct rt_arg_bulk { 00133 00134 u_long a1; 00135 u_long a2; 00136 u_long a3; 00137 u_long a4; 00138 u_long a5; 00139 u_long a6; 00140 }; 00141 00142 #if defined (__KERNEL__) || defined(__XENO_SIM__) 00143 00144 #ifdef __cplusplus 00145 extern "C" { 00146 #endif 00147 00148 #ifdef CONFIG_XENO_OPT_PERVASIVE 00149 00150 int __native_syscall_init(void); 00151 00152 void __native_syscall_cleanup(void); 00153 00154 #else /* !CONFIG_XENO_OPT_PERVASIVE */ 00155 00156 #define __native_syscall_init() ({ 0; }) 00157 #define __native_syscall_cleanup() do { } while(0) 00158 00159 #endif /* !CONFIG_XENO_OPT_PERVASIVE */ 00160 00161 #ifdef __cplusplus 00162 } 00163 #endif 00164 00165 #endif /* __KERNEL__ || __XENO_SIM__ */ 00166 00167 #endif /* _NATIVE_SYSCALL_H */