00001
00049 #ifndef _RTAI_TYPES_H
00050 #define _RTAI_TYPES_H
00051
00052 #define RTAI_SKIN_MAGIC 0x52544149
00053
00054 #include <nucleus/types.h>
00055
00056 #define TM_INFINITE XN_INFINITE
00057 #define TM_NONBLOCK XN_NONBLOCK
00058 #define TM_NOW XN_INFINITE
00059
00060 #if defined(__KERNEL__) || defined(__RTAI_SIM__)
00061
00062 typedef xnticks_t RTIME;
00063
00064 typedef xnsticks_t SRTIME;
00065
00066 #define rtai_h2obj_validate(h,m,t) \
00067 ((h) && ((t *)(h))->magic == (m) ? ((t *)(h)) : NULL)
00068
00069 #define rtai_h2obj_deleted(h,m,t) \
00070 ((h) && ((t *)(h))->magic == ~(m))
00071
00072 #define rtai_mark_deleted(t) ((t)->magic = ~(t)->magic)
00073
00074 #define rtai_handle_error(h,m,t) \
00075 (rtai_h2obj_deleted(h,m,t) ? -EIDRM : -EINVAL)
00076
00077 #define rtai_test_magic(h,m) \
00078 ((h) && *((unsigned *)(h)) == (m))
00079
00080 #define RT_KAPI_SOURCE 0x4b524e4c
00081 #define RT_UAPI_SOURCE 0x55534552
00082
00083 #else
00084
00085 typedef unsigned long long RTIME;
00086
00087 typedef long long SRTIME;
00088
00089 #endif
00090
00091 typedef u_long rt_handle_t;
00092
00093 #define RT_HANDLE_INVALID ((rt_handle_t)0)
00094
00095 typedef xnsigmask_t rt_sigset_t;
00096
00097 #define RT_HANDLER_NONE XNTHREAD_INVALID_ASR
00098
00099 struct rt_alarm;
00100
00101 typedef void (*rt_alarm_t)(struct rt_alarm *alarm,
00102 void *cookie);
00103
00104 #endif