summaryrefslogtreecommitdiff
path: root/cpu/task_switching/tdt.txt
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2023-01-05 03:29:26 -0500
committerTest_User <hax@andrewyu.org>2023-01-05 03:29:26 -0500
commit0d290b91117fb0002e247b7a48a38eb40fc48fbd (patch)
tree5e36c882826194853835c1d1fc056bcbe7f01717 /cpu/task_switching/tdt.txt
parentb0ca4d17f93970881edf05f3cff206d47b7fa564 (diff)
downloadspecification-0d290b91117fb0002e247b7a48a38eb40fc48fbd.tar.gz
specification-0d290b91117fb0002e247b7a48a38eb40fc48fbd.zip
Add hardware task switching, get rid of software interrupts
Diffstat (limited to '')
-rw-r--r--cpu/task_switching/tdt.txt23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpu/task_switching/tdt.txt b/cpu/task_switching/tdt.txt
new file mode 100644
index 0000000..d7c7858
--- /dev/null
+++ b/cpu/task_switching/tdt.txt
@@ -0,0 +1,23 @@
+Each entry is n*(5 + number_of_registers) bits long, where n is the current mode in bits
+
+Each entry uses the following format:
+ width: same number of bits as current mode
+ (higher address)
+ +----------------------------------------------------------------------------------+
+ | array of register's contents on last switch |
+ +-----------------------------------+----------------------------------------------+
+ | upper 1/2: number of segments | lower 1/2: pointer to segments |
+ +-----------------------------------+----------------------------------------------+
+ | upper 1/2: callable segment index | lower 1/2: current process being executed as |
+ +-----------------------------------+----------------------------------------------+
+ | PR to be used when called |
+ +----------------------------------------------------------------------------------+
+ | reserved for specifying where it's being executed |
+ +-----------------------------------+---------------------+------------------------+
+ | upper 1/2: custom id | n bits below: flags | remaining: unused |
+ +-----------------------------------+---------------------+------------------------+
+ (lower address)
+
+Flags:
+ 0: Valid
+ 1: Currently running