X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=doc%2Fhtml%2Fref%2Fcompat-uitron-task-management-functions.html;fp=doc%2Fhtml%2Fref%2Fcompat-uitron-task-management-functions.html;h=b14902c7a783e6c2cd22e6c74ec20d42e23ad092;hb=2b5bec7716c03d42cfb16d8c98c9cea573bf6722;hp=0000000000000000000000000000000000000000;hpb=47412fc4bd1aefc0d5498bcb3860a9d727196f16;p=karo-tx-redboot.git diff --git a/doc/html/ref/compat-uitron-task-management-functions.html b/doc/html/ref/compat-uitron-task-management-functions.html new file mode 100644 index 00000000..b14902c7 --- /dev/null +++ b/doc/html/ref/compat-uitron-task-management-functions.html @@ -0,0 +1,686 @@ + + + + + + + + +
The following functions are fully supported in this release:
ER sta_tsk( + ID tskid, + INT stacd ) |
void ext_tsk( void ) |
void exd_tsk( void ) |
ER dis_dsp( void ) |
ER ena_dsp( void ) |
ER chg_pri( + ID tskid, + PRI tskpri ) |
ER rot_rdq(
+ PRI tskpri ) |
ER get_tid(
+ ID *p_tskid ) |
ER ref_tsk( + T_RTSK *pk_rtsk, + ID tskid ) |
ER ter_tsk(
+ ID tskid ) |
ER rel_wai(
+ ID tskid ) |
The following two functions are supported in this release, +when enabled with the configuration option +CYGPKG_UITRON_TASKS_CREATE_DELETE +with some restrictions:
ER cre_tsk( + ID tskid, + T_CTSK *pk_ctsk ) |
ER del_tsk(
+ ID tskid ) |
These functions are restricted as follows:
Because of the static initialization facilities provided for +system objects, a task is allocated stack space statically in the +configuration. So while tasks can be created and deleted, the same +stack space is used for that task (task ID number) each time. Thus +the stack size (pk_ctsk->stksz) requested in cre_tsk() is +checked for being less than that which was statically allocated, +and otherwise ignored. This ensures that the new task will have +enough stack to run. For this reason del_tsk() does +not in any sense free the memory that was in use for the task's +stack.
The task attributes (pk_ctsk->tskatr) are +ignored; current versions of eCos do not need +to know whether a task is written in assembler or C/C++ so +long as the procedure call standard appropriate to the CPU is followed.
Extended information (pk_ctsk->exinf) is + ignored.
For all these calls, an invalid task id (tskid) (less than +1 or greater than the number of configured tasks) only returns E_ID +when bad params return errors ( +CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS +is enabled, see above).
Similarly, the following conditions are only checked for, +and only return errors if +CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS +is enabled:
pk_crtk in +cre_tsk() + is a valid pointer, otherwise return E_PAR
ter_tsk() + or +rel_wai() + on the calling task returns E_OBJ
the CPU is not locked already in +dis_dsp() + and +ena_dsp() +; returns E_CTX
priority level in +chg_pri() + and +rot_rdq() + is checked for validity, E_PAR
return value pointer in +get_tid() + and +ref_tsk() + is a valid pointer, or E_PAR
The following conditions are checked for, and return + error codes if appropriate, regardless of the setting of +CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS +:
When create and delete functions +cre_tsk() + and +del_tsk() + are supported, all calls which use a valid task ID number check +that the task exists; if not, E_NOEXS is returned
When supported, +cre_tsk() +: the task must not already exist; otherwise E_OBJ
When supported, +cre_tsk() +: the requested stack size must not be larger than that statically +configured for the task; see the configuration options +“Static initializers”, and “Default stack size”. +Else E_NOMEM
When supported, +del_tsk() +: the underlying +eCos + thread must not be running - this would imply either a bug or some +program bypassing the +µITRON compatibility layer and manipulating the thread directly. +E_OBJ
sta_tsk() +: the task must be dormant, else E_OBJ
ter_tsk() +: the task must not be dormant, else E_OBJ
chg_pri() +: the task must not be dormant, else E_OBJ
rel_wai() +: the task must be in +WAIT or WAIT-SUSPEND + state, else E_OBJ