00001
00070 #ifndef _OS_DATATYPES_H
00071 #define _OS_DATATYPES_H
00072
00073 #ifdef __vxworks
00074
00075 #include "time.h"
00076 #include "vxWorks.h"
00077 #include "semaphore.h"
00078
00079 typedef unsigned int os_thread_t;
00080 typedef unsigned int os_sem_t;
00081 typedef unsigned int os_mutex_t;
00082
00083
00084
00085 typedef struct os_s_timespec_t
00086 {
00087 time_t sec;
00088 long nsec;
00089 }timespec_t;
00090
00091
00092 typedef enum os_e_thread_priority{
00093 OS_THREAD_PRI_LOW = 240,
00094 OS_THREAD_PRI_MEDIUM = 160,
00095 OS_THREAD_PRI_HIGH = 90
00096 } os_thread_priority;
00097
00098
00105 typedef enum os_e_sem_state
00106 {
00107 OS_SEM_UNVAILABLE =SEM_EMPTY,
00108 OS_SEM_AVAILABLE =SEM_FULL
00109 } os_sem_state;
00110
00111
00118 typedef enum os_e_mutex_state
00119 {
00120 OS_MUTEX_UNLOCK = FALSE ,
00121 OS_MUTEX_LOCK = TRUE
00122 } os_mutex_state;
00123
00124 typedef enum os_e_error_codes{
00125
00126 OS_FAILURE = 1 ,
00127 OS_RESOURCE_SHORTAGE ,
00128
00129 OS_INVALID_ATTR ,
00130
00131 OS_INVALID_PRIVLG ,
00132
00133 OS_RESOURCE_DEADLOCK ,
00134 OS_INVALID_THREADID ,
00135 OS_NOMEM ,
00136 OS_RESOURCE_BUSY ,
00137 OS_NOSYS,
00138 OS_TIMEDOUT ,
00139 OS_INVALID_MUTEX,
00140 OS_SEMA_NOSPC ,
00141 OS_ERR_INTR = 14,
00142 OS_INVALID_OPERATION = 15,
00143 OS_INVALID_ADDR = 16
00144 } os_error_code;
00145
00146 typedef struct os_s_error{
00147 os_error_code errnum;
00148 char errname [25];
00149 } os_error;
00150
00151
00152
00153 #define OS_WAIT_FOREVER WAIT_FOREVER
00154 #define OS_WAIT_NONE NO_WAIT
00155
00156 #elif __linux
00157
00158 #include <linux/types.h>
00159 #include <asm/semaphore.h>
00160
00161 #define OS_WAIT_FOREVER (-1UL)
00162 #define OS_WAIT_NONE 0
00163
00164 typedef enum os_e_mutex_state {
00165 OS_MUTEX_UNLOCK = 0,
00166 OS_MUTEX_LOCK = 1
00167 } os_mutex_state;
00168
00169 typedef enum os_e_sem_state {
00170 OS_SEM_UNVAILABLE = 0,
00171 OS_SEM_AVAILABLE = 1
00172 } os_sem_state;
00173
00174 typedef enum os_e_thread_priority {
00175 OS_THREAD_PRI_HIGH = 90,
00176 OS_THREAD_PRI_MEDIUM = 160,
00177 OS_THREAD_PRI_LOW = 240
00178 } os_thread_priority;
00179
00180
00181 typedef unsigned int os_thread_t;
00182 typedef struct semaphore *os_sem_t;
00183 typedef struct semaphore *os_mutex_t;
00184
00185 typedef enum os_e_error_codes{
00186
00187 OS_FAILURE = 1 ,
00188 OS_RESOURCE_SHORTAGE ,
00189
00190 OS_INVALID_ATTR ,
00191
00192 OS_INVALID_PRIVLG ,
00193
00194 OS_RESOURCE_DEADLOCK ,
00195 OS_INVALID_THREADID ,
00196 OS_NOMEM ,
00197 OS_RESOURCE_BUSY ,
00198 OS_NOSYS,
00199 OS_TIMEDOUT ,
00200 OS_INVALID_MUTEX,
00201 OS_SEMA_NOSPC ,
00202 OS_ERR_INTR = 14,
00203 OS_INVALID_OPERATION = 15,
00204 OS_INVALID_ADDR = 16
00205 } os_error_code;
00206
00207 typedef struct os_s_error{
00208 os_error_code errnum;
00209 char errname [25];
00210 } os_error;
00211
00212 #endif
00213
00214 #endif
00215