While testing my application I found an error in the vxWorks skin.

When calling it on my PPC405 system I found that taskInit does not mimick 
exactly the behaviour.  As the WIND_TDB in xenomai/vxworks is just an integer
one has to add an ifdef if one wants to use this function properly

E.g. I added the following switch in my code

   status = taskInit (tcb_base,    <..mor parameters>);
  status = taskActivate(*(int *)tcb_base);
   status = taskActivate((int)tcb_base);
Is my interpretation correct? Shouldn't this behaviour be documented under 

My proposal is:

Index: doc/txt/vxworks-skin.txt
--- doc/txt/vxworks-skin.txt    (Revision 4311)
+++ doc/txt/vxworks-skin.txt    (Arbeitskopie)
@@ -13,7 +13,7 @@
 The VxWorks (R) emulation module currently mimicks the following

-taskSpawn, taskInit, taskActivate, taskDelete, taskDeleteForce, taskSuspend,
+taskSpawn, taskInit, taskActivate, taskDelete, taskDeleteForce, taskSuspend,
 taskResume, taskPrioritySet, taskPriorityGet, taskLock, taskUnlock, 
 taskSafe, taskUnsafe, taskDelay, taskIdVerify, taskTcb, taskRestart

@@ -52,6 +52,12 @@

 - taskInit gives a default name if NULL was passed as argument.

+- taskInit stores in WIND_TCB pointed by *pTcb a integer, which can be used
+  in the subsequent call to taskActivate. E.g. change your code from
+  status = taskActivate((int)pTcb);
+  to
+  status = taskActivate(*(int *)pTcb);
 - For the moment, the status member of task control blocks is never updated 
   reflect the status of a task.


Best regards


Xenomai-core mailing list

Reply via email to