Redefine microkernel task object identifier type
The opaque task object id type is now a pointer to the associated task structure, rather than an index into the microkernel's array of task structures. This change is a pre-requisite to support for private task objects, which are defined in source code. Change-Id: Idb53ea7f8a8a5b7e6477a74273930b08fc77dcfe Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
c290ebaebd
commit
1367a98e9e
6 changed files with 36 additions and 24 deletions
|
@ -327,7 +327,7 @@ void task_abort_handler_set(void (*func)(void) /* abort handler */
|
|||
void _k_task_op(struct k_args *A)
|
||||
{
|
||||
ktask_t Tid = A->Args.g1.task;
|
||||
struct k_proc *X = _k_task_list + OBJ_INDEX(Tid);
|
||||
struct k_proc *X = (struct k_proc *)Tid;
|
||||
|
||||
switch (A->Args.g1.opt) {
|
||||
case TASK_START:
|
||||
|
@ -499,7 +499,7 @@ kpriority_t task_priority_get(void)
|
|||
void _k_task_priority_set(struct k_args *A)
|
||||
{
|
||||
ktask_t Tid = A->Args.g1.task;
|
||||
struct k_proc *X = _k_task_list + OBJ_INDEX(Tid);
|
||||
struct k_proc *X = (struct k_proc *)Tid;
|
||||
|
||||
_k_state_bit_set(X, TF_PRIO);
|
||||
X->Prio = A->Args.g1.prio;
|
||||
|
@ -596,6 +596,8 @@ void task_entry_set(ktask_t task, /* task */
|
|||
void (*func)(void) /* entry point */
|
||||
)
|
||||
{
|
||||
_k_task_list[OBJ_INDEX(task)].fstart = func;
|
||||
struct k_proc *X = (struct k_proc *)task;
|
||||
|
||||
X->fstart = func;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue