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

Last change on this file since 237 was 232, checked in by meunier, 11 years ago

Ajout du malloc dans le Giet.

File size: 2.1 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    unsigned int context[15][64];      // at most 15 task contexts
12    unsigned int tasks;                // actual number of tasks
13    unsigned int current;              // current task index
14    unsigned int interrupt_vector[32]; // interrupt vector
15} static_scheduler_t;
16
17
18/////////////////////////////////////////////////////////////////////////////////
19//  "idle" task index definition
20/////////////////////////////////////////////////////////////////////////////////
21
22#define IDLE_TASK_INDEX        14
23
24/////////////////////////////////////////////////////////////////////////////////
25//    Definition of the task context slots indexes
26/////////////////////////////////////////////////////////////////////////////////
27
28#define CTX_SP_ID        29
29#define CTX_RA_ID        31
30
31#define CTX_EPC_ID       32
32#define CTX_CR_ID        33
33#define CTX_SR_ID        34
34#define CTX_BVAR_ID      35
35
36#define CTX_PTPR_ID      39
37
38#define CTX_TTY_ID       40  // Integer : global TTY terminal index
39#define CTX_DMA_ID       41  // Integer : global DMA channel index
40#define CTX_NIC_ID       42  // Integer : global NIC channel index
41#define CTX_TIMER_ID     43  // Integer : user level timer index / UNUSED
42#define CTX_PTAB_ID      44  // Pointer : page table virtual base adress
43#define CTX_LTID_ID      45  // Integer : local task index (in scheduler) / UNUSED
44#define CTX_VSID_ID      46  // Integer : vspace index
45#define CTX_RUN_ID       47  // Boolean : task runable
46#define CTX_GTID_ID      48  // Integer : Global task id
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.