Overview
========

The VxWorks (R) emulation module on top of Xenomai currently mimicks
the following services:

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

taskCreateHookAdd, taskCreateHookDelete, taskSwitchHookAdd, taskSwitchHookDelete
taskDeleteHookAdd, taskDeleteHookDelete

taskName, taskNameToId, taskIdDefault, taskIsReady, taskIsSuspended

semGive, semTake, semFlush, semDelete, semBCreate, semMCreate, semCCreate

wdCreate, wdDelete, wdStart, wdCancel

msgQCreate, msgQDelete, msgQNumMsgs, msgQReceive, msgQSend

intContext, intCount, intLevelSet, intLock, intUnlock

sysClkConnect, sysClkDisable, sysClkEnable, sysClkRateGet, sysClkRateSet

tickAnnounce, tickGet, tickSet

kernelTimeSlice, kernelVersion

printErrno, errnoSet, errnoGet, errnoOfTaskGet, errnoOfTaskSet



Known variations from VxWorks/WIND
==================================

You may observe some variations from VxWorks, if you find such a variation and
you think it would be easy to correct, please send a mail to the xenomai mailing
list. Here are the known variations:

- taskInit ignores the pStackBase argument, and the flags VX_PRIVATE_ENV,
  VX_NO_STACK_FILL, VX_UNBREAKABLE.

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

- For the moment, the status member of task control blocks is never updated to
  reflect the status of a task.

- The tcb of a task launched with taskSpawn is automatically reclaimed by the
  system whereas the tcb of a task launched with taskInit (hence passed by the
  user) is not. Which means that if you want to inspect your tcb post-mortem,
  you have to use taskInit.

- The errno returned by some functions may be different from those of the
  genuine functions. The emulator functions may even return errors where the
  genuine did not.

- Some tasks management functions which accept 0 as argument in the genuine OS
  may not accept it in the emulator.

- The function taskIsReady may not have the correct behavior when the current
  task is passed as argument.

- the error S_taskLib_TASK_HOOK_TABLE_FULL has not the same value as in the
  genuine OS.

- the function 'exit' of VxWorks is now named 'taskExit' (exit was causing too
  many compilation warnings).

- functions taking function pointers as arguments do not use FUNCPTR, which mean
  that the function pointer types are verified at compile time.

Module parameters
=================

The following parameters can be passed at startup to the VxWorks
API emulation module:

- "tick_hz_arg", clock tick period. Defaults to 100 Hz.
