24 #ifndef _XENOMAI_VXWORKS_TASKLIB_H
25 #define _XENOMAI_VXWORKS_TASKLIB_H
28 #include <vxworks/types.h>
31 #define VX_UNBREAKABLE 0x0002
32 #define VX_FP_TASK 0x0008
33 #define VX_PRIVATE_ENV 0x0080
34 #define VX_NO_STACK_FILL 0x0100
36 #define WIND_READY 0x0
37 #define WIND_SUSPEND 0x1
39 #define WIND_DELAY 0x4
41 #define WIND_STOP 0x10
43 typedef uintptr_t TASK_ID;
45 typedef void (*FUNCPTR)(long, long, long, long, long,
46 long, long, long, long, long);
48 typedef struct WIND_TCB {
60 TASK_ID taskSpawn(
const char *name,
65 long arg0,
long arg1,
long arg2,
long arg3,
long arg4,
66 long arg5,
long arg6,
long arg7,
long arg8,
long arg9);
68 STATUS taskInit(WIND_TCB *pTcb,
72 char * stack __attribute__ ((unused)),
75 long arg0,
long arg1,
long arg2,
long arg3,
long arg4,
76 long arg5,
long arg6,
long arg7,
long arg8,
long arg9);
78 STATUS taskActivate(TASK_ID tid);
80 STATUS taskDelete(TASK_ID tid);
82 STATUS taskDeleteForce(TASK_ID tid);
84 STATUS taskSuspend(TASK_ID tid);
86 STATUS taskResume(TASK_ID tid);
88 STATUS taskPrioritySet(TASK_ID tid,
91 STATUS taskPriorityGet(TASK_ID tid,
94 void taskExit(
int code);
96 STATUS taskLock(
void);
98 STATUS taskUnlock(
void);
100 TASK_ID taskIdSelf(
void);
102 STATUS taskSafe(
void);
104 STATUS taskUnsafe(
void);
106 STATUS taskDelay(
int ticks);
108 STATUS taskIdVerify(TASK_ID tid);
110 struct WIND_TCB *taskTcb(TASK_ID tid);
112 int wind_task_normalize_priority(
int wind_prio);
114 int wind_task_denormalize_priority(
int core_prio);