Overview
========

The uITRON module on top of Xenomai currently implements the following
services:

Known variations from the uITRON 3.02 specification
===================================================

- Generally speaking, the verification of address parameters is not
performed by the uITRON API. Running your application on top of the
MVM is _always_ a good idea to detect memory reference problems more
easily.

Implementation-dependent characteristics
========================================

- Task identifiers must be strictly positive. Passing zero or a
negative task identifier to the API always beget the E_ID error,
therefore E_OACV is never returned.

- cre_tsk():
 * Task priority may range from 1 to 8 (included).
 * Task attributes are ignored, therefore E_RSATR is never returned.
 * E_PAR is returned when the given stack size is lower than 1Kbyte.

- ext_tsk():
- exd_tsk():
 * Upon error, these system calls cause the uITRON API to abort.

- rot_rdq():
 * implements the [Level X] cyclic handler feature as defined by the
   uITRON 3.02 specification. When called on behalf of a
   task-independent portion, the ready queue including the running
   task is rotated.

- ref_tsk():
 * Since the verification of address parameters is not performed by
   the uITRON API, E_PAR is never returned.
 * Implements [Level X] except for pk_rtsk->wid which is currently
   returned as zero in ALL cases.

- sus_tsk():
 * Implements [Level X] suspend request nesting feature. The maximum
   nesting count is 0x7fffffff. Nesting overflow results in E_QOVR
   being returned.

- rsm_tsk():
 * Implements [Level X] suspend request nesting feature.

- tsk_slp():
 * A zero timeout value immediately begets an E_TMOUT error return
   with no delay applied.

- wup_tsk():
 * Implements [Level X] wakeup request queuing feature. The maximum
   queing count is 0x7fffffff. Queuing overflow results in E_QOVR
   being returned.

- cre_sem():
 * Implements [Level X] priority queuing and maximum semaphore count
   features.

- ref_sem():
 * Implements [Level X] waiter information feature (pk_rsem->wtsk is
   always defined on return).

- cre_flg():
 * Implements [Level X] multiple waiters feature.

- ref_flg():
 * Implements [Level X] waiter information feature (pk_rflg->wtsk is
   always defined on return).

- cre_mbx():
 * Implements [Level X] task priority queuing feature but NOT the
 message priority queuing since a buffer ring is used for storing
 messages instead of a linear list. E_PAR is returned whenever
 pk_cmbx->bufcnt is lower than or equal to zero.

- ref_mbx():
 * Implements [Level X] waiter information feature (pk_rmbx->wtsk is
   always defined on return).

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

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

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