#include <tigcclib.h>
#include "opale.h"
Include dependency graph for opale_internal.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | t_EVENT |
Defines | |
#define | identToX(_itx) ((_itx)&MASK_X) |
#define | identToY(_ity) ((_ity)>>MASK_Y) |
#define | IDLE_TASK_IDENT IDLE_TASK_PRIORITY |
#define | IDLE_TASK_PRIORITY LOWEST_PRIORITY |
#define | indexToSettedBit(_itsb) (1<<(_itsb)) |
#define | indexToUnsettedBit(_itub) (~(1<<(_itub))) |
#define | MASK_X (_X_-1) |
#define | MASK_Y (_N_) |
#define | op_Scheduler() asm(" trap #6") |
Functions | |
void | addTaskToTable (register t_TASK_BLOCK *table asm("%a0"), register unsigned char ident asm("%d0")) |
void | ContextSwitch (register t_TASK *highestPriorityTaskReady asm("%a3"), register t_TASK **currentTask asm("%a2")) __attribute__((noreturn)) |
void | IdleTaskFunction (register void *asm("%a0")) __attribute__((noreturn)) |
void | InitIntVectors (void) |
void * | InitStack (register void *args asm("%a0"), register char *stack asm("%a1"), register void(*func)() asm("%a2")) |
void | removeTaskFromTable (register t_TASK_BLOCK *table asm("%a0"), register unsigned char ident asm("%d0")) |
void | RestoreIntVectors (void) |
Variables | |
t_TASK * | currentTask |
t_TASK | idleTask |
unsigned char * | indexToLowestSettedBit |
unsigned short | numberOfNestedISRs |
unsigned short | numberOfNestedShedulerHalts |
t_TASK_BLOCK * | readyTasks |
t_TASK ** | runningTasks |
t_TASK_BLOCK * | waitingTasks |
|
Definition at line 17 of file opale_internal.h. Referenced by addTaskToTable(), and removeTaskFromTable(). |
|
Definition at line 18 of file opale_internal.h. Referenced by addTaskToTable(), and removeTaskFromTable(). |
|
Definition at line 12 of file opale_internal.h. Referenced by op_KernelInit(). |
|
Definition at line 11 of file opale_internal.h. |
|
Definition at line 14 of file opale_internal.h. Referenced by Scheduler(). |
|
Definition at line 15 of file opale_internal.h. |
|
Definition at line 8 of file opale_internal.h. Referenced by Scheduler(). |
|
Definition at line 9 of file opale_internal.h. Referenced by MakeTaskReady(), and Scheduler(). |
|
Definition at line 20 of file opale_internal.h. Referenced by moveFromTable(), op_TaskStart(), op_TaskStop(), and op_TaskWaitForTicks(). |
|
Adds a task to a t_TASK_BLOCK. This could be either a table of waiting tasks, or sleeping tasks, or so.
References identToX, and identToY. Referenced by moveFromTable(), op_TaskStart(), and PerformDelay(). |
|
Referenced by Scheduler(). |
|
Referenced by op_KernelInit(). |
|
Referenced by op_KernelInit(). |
|
Referenced by op_TaskStart(). |
|
Remove a task from a t_TASK_BLOCK. This could be either a table of waiting tasks, or sleeping tasks, or so.
References identToX, and identToY. Referenced by moveFromTable(), op_TaskStop(), and op_TaskWaitForTicks(). |
|
|
|
Referenced by op_TaskStop(), op_TaskWaitForTicks(), Scheduler(), and WaitForEvent(). |
|
Task Control Block for the idle task. Definition at line 44 of file opale_core.c. Referenced by op_KernelInit(), op_TaskWaitForTicks(), and PerformDelay(). |
|
indexToLowestSettedBit is a pointer to a table used to get the index of the lowest weighted setted bit of a number. Given the number, the value at indexToLowestSettedBit[ number ] is the index of the wanted bit.
Here is what would the table looks like fo 64 tasks: indexToLowestSettedBit[ TO_LOWEST_SETTED_BIT_TABLE_SIZE ] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 }; Referenced by MakeTaskReady(), op_KernelInit(), and Scheduler(). |
|
Definition at line 39 of file opale_core.c. Referenced by op_KernelInit(). |
|
Definition at line 40 of file opale_core.c. Referenced by op_KernelInit(). |
|
pointer to the task block used for general purpose scheduling. Definition at line 53 of file opale_core.c. Referenced by MakeTaskReady(), op_KernelInit(), op_TaskStart(), op_TaskStop(), op_TaskWaitForTicks(), PerformDelay(), Scheduler(), and WaitForEvent(). |
|
Pointer to the array of running tasks. Definition at line 49 of file opale_core.c. Referenced by op_KernelInit(), op_TaskStart(), op_TaskStop(), and Scheduler(). |
|
|