diff options
author | leleraffa97@hotmail.it <leleraffa97@hotmail.it> | 2017-06-23 12:18:24 +0200 |
---|---|---|
committer | leleraffa97@hotmail.it <leleraffa97@hotmail.it> | 2017-06-23 12:18:24 +0200 |
commit | ac89960fbe89141aea31da9a329bfa39d67eede7 (patch) | |
tree | 5fd8f8baefd80d235ebe43167f89c580d137ce22 /sw/z80/kernel/include/sysexe.h | |
parent | libc memset, memcmp (diff) | |
download | z80uPC-ac89960fbe89141aea31da9a329bfa39d67eede7.tar.gz z80uPC-ac89960fbe89141aea31da9a329bfa39d67eede7.zip |
Order and update of the struct
Separation of boot and login sections
Improuved program manager system
Diffstat (limited to 'sw/z80/kernel/include/sysexe.h')
-rw-r--r-- | sw/z80/kernel/include/sysexe.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sw/z80/kernel/include/sysexe.h b/sw/z80/kernel/include/sysexe.h new file mode 100644 index 0000000..9c13c09 --- /dev/null +++ b/sw/z80/kernel/include/sysexe.h @@ -0,0 +1,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
\ No newline at end of file |