diff options
author | Test_User <hax@andrewyu.org> | 2023-01-05 03:29:26 -0500 |
---|---|---|
committer | Test_User <hax@andrewyu.org> | 2023-01-05 03:29:26 -0500 |
commit | 0d290b91117fb0002e247b7a48a38eb40fc48fbd (patch) | |
tree | 5e36c882826194853835c1d1fc056bcbe7f01717 /cpu/task_switching/tdt.txt | |
parent | b0ca4d17f93970881edf05f3cff206d47b7fa564 (diff) | |
download | specification-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.txt | 23 |
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 |