From ac89960fbe89141aea31da9a329bfa39d67eede7 Mon Sep 17 00:00:00 2001 From: "leleraffa97@hotmail.it" Date: Fri, 23 Jun 2017 12:18:24 +0200 Subject: Order and update of the struct Separation of boot and login sections Improuved program manager system --- sw/z80/kernel/include/sysexe.h | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sw/z80/kernel/include/sysexe.h (limited to 'sw/z80/kernel/include/sysexe.h') 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 -- cgit v1.2.1