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

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

Introducing the "idle" to improve the exit mechanism.

File size: 1.7 KB
Line 
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{
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
16} static_scheduler_t;
17
18
19/////////////////////////////////////////////////////////////////////////////////
20//  "idle" task index definition
21/////////////////////////////////////////////////////////////////////////////////
22
23#define IDLE_TASK_INDEX         14
24
25/////////////////////////////////////////////////////////////////////////////////
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
34#define CTX_SR_ID               34
35#define CTX_BVAR_ID             35
36
37#define CTX_PTPR_ID             39
38
39#define CTX_TTY_ID              40
40#define CTX_FBDMA_ID    41
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
47
48//////////////////////////////////////////////////////////////////////////////////
49//      Prototype of the context switch function
50//////////////////////////////////////////////////////////////////////////////////
51
52extern void _ctx_switch();
53extern void _ctx_eret();
54extern void _ctx_idle();
55
56extern static_scheduler_t _scheduler[];
57
58#endif
Note: See TracBrowser for help on using the repository browser.