summaryrefslogtreecommitdiffstats
path: root/sw/z80/kernel/include/sysexe.h
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2017-07-04 09:16:59 +0200
committerNao Pross <naopross@thearcway.org>2017-07-04 09:16:59 +0200
commita86838ead76c76e62369d461d5f4ff6ea6b07433 (patch)
treea2a5131ce8a4fb06c6cefceaa5fb9857a42ce553 /sw/z80/kernel/include/sysexe.h
parentnew components list and cpld test unit (diff)
parentOrder and update of the struct (diff)
downloadz80uPC-a86838ead76c76e62369d461d5f4ff6ea6b07433.tar.gz
z80uPC-a86838ead76c76e62369d461d5f4ff6ea6b07433.zip
merge branch 'atlas' into naopross
Diffstat (limited to 'sw/z80/kernel/include/sysexe.h')
-rw-r--r--sw/z80/kernel/include/sysexe.h55
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