source: soft/giet_vm/sys/ctx_handler.h @ 199

Last change on this file since 199 was 199, checked in by alain, 12 years ago

Introducing the "idle" to improve the exit mechanism.

File size: 1.7 KB
RevLine 
[158]1#ifndef _CTX_HANDLER_H
2#define _CTX_HANDLER_H
3
4#include <giet_config.h>
5
6/////////////////////////////////////////////////////////////////////////////////
7//      Definition of the scheduler structure
8/////////////////////////////////////////////////////////////////////////////////
9
10typedef struct static_scheduler_s
11{
[189]12    unsigned int        context[15][64];                // at most 15 task contexts
13    unsigned int        tasks;                                  // actual number of tasks
14    unsigned int        current;                                // current task index
15    unsigned int        interrupt_vector[32];   // interrupt vector
[158]16} static_scheduler_t;
17
[199]18
[167]19/////////////////////////////////////////////////////////////////////////////////
[199]20//  "idle" task index definition
21/////////////////////////////////////////////////////////////////////////////////
22
23#define IDLE_TASK_INDEX         14
24
25/////////////////////////////////////////////////////////////////////////////////
[167]26//      Definition of the task context slots indexes
27/////////////////////////////////////////////////////////////////////////////////
28
29#define CTX_SP_ID               29
30#define CTX_RA_ID               31
31
32#define CTX_EPC_ID              32
33#define CTX_CR_ID               33
[199]34#define CTX_SR_ID               34
35#define CTX_BVAR_ID             35
[167]36
[199]37#define CTX_PTPR_ID             39
38
[167]39#define CTX_TTY_ID              40
40#define CTX_FBDMA_ID    41
[199]41#define CTX_NIC_ID              42
42#define CTX_TIMER_ID    43
43#define CTX_PTAB_ID             44
44#define CTX_LTID_ID             45
45#define CTX_VSID_ID             46
46#define CTX_RUN_ID              47
[167]47
[158]48//////////////////////////////////////////////////////////////////////////////////
49//      Prototype of the context switch function
50//////////////////////////////////////////////////////////////////////////////////
51
52extern void _ctx_switch();
[199]53extern void _ctx_eret();
54extern void _ctx_idle();
[158]55
56extern static_scheduler_t _scheduler[];
57
58#endif
Note: See TracBrowser for help on using the repository browser.