blob: 9c13c0928ca8e5fdb304de0811c4b7195d2af280 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#ifndef SYS_EXE
#define SYS_EXE
#define SYS_EXEC_ADDR // TODO find an address in Kernel space
struct sys_progman {
// program 0 enabled
uint8_t prog_0_enabled:1;
// program 1 enabled
/*
* Obs: A program is enabled when its space is allocated
* and its virtual program counter is stored in
* the hardware or in the silent_pc.
* An enabled program is not necessarly running, it
* could be paused too.
*/
uint8_t prog_1_enabled:1;
// running's program id
uint8_t prog_running:1;
};
struct sys_exec {
/*
* Virtual addresses are activated
*/
uint8_t virtual_addr:1;
struct sys_progman progman;
/*
* The silent_pc is the place designed to store the
* program counter of the program that's not running
*/
uint8_t silent_pc:12;
};
/*
* Function to access informations
*/
uint8_t vaddr_enabled();
struct sys_progman * sys_prog_data(struct sys_progman *data);
#endif
|