summaryrefslogtreecommitdiff
path: root/cpu/interrupts
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/interrupts')
-rw-r--r--cpu/interrupts/exceptions/edt.txt4
-rw-r--r--cpu/interrupts/exceptions/execution.txt30
-rw-r--r--cpu/interrupts/execution.txt10
-rw-r--r--cpu/interrupts/hardware/execution.txt10
-rw-r--r--cpu/interrupts/irqt.txt (renamed from cpu/interrupts/hardware/irqt.txt)0
-rw-r--r--cpu/interrupts/software/execution.txt8
-rw-r--r--cpu/interrupts/software/idt.txt11
7 files changed, 10 insertions, 63 deletions
diff --git a/cpu/interrupts/exceptions/edt.txt b/cpu/interrupts/exceptions/edt.txt
deleted file mode 100644
index f1f5792..0000000
--- a/cpu/interrupts/exceptions/edt.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Each entry is n bits long, where n is the current mode in bits
-TODO: Specify a limit for them
-
-Each entry is a pointer to the code to be executed
diff --git a/cpu/interrupts/exceptions/execution.txt b/cpu/interrupts/exceptions/execution.txt
deleted file mode 100644
index dbf8825..0000000
--- a/cpu/interrupts/exceptions/execution.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-For non-double exceptions:
- OPRE gets set to the PR from the previous code running
- OIPE gets set to the IP from the previous code running
- PR is set to all 1s
-
- Hardware interrupts will not occur until after the current processing has been finished via `irete`
- Any exceptions that occur before `irete` will trigger a double exception instead of the normal one
-
- When returning via irete:
- PR is set to OPRE
- Execution jumps to OIPE
-
-For a double exception:
- OPRDE is set to the PR from the previous code running
- OIPDE is set to the IP from the previous code running
- PR is set to all 1s
-
- Segmentation is ignored for the double exception handler, flat addressing is used with no protection
-
- If any exceptions occur during execution of the double exception handler:
- If this is not the only core active on the system:
- Broadcasts a triple fault message
- Shuts down
-
- If this is the only core active on the system:
- Restarts the system
-
- When returning via iretde:
- PR is set to OPRDE
- Execution jumps to OIPDE
diff --git a/cpu/interrupts/execution.txt b/cpu/interrupts/execution.txt
new file mode 100644
index 0000000..858334c
--- /dev/null
+++ b/cpu/interrupts/execution.txt
@@ -0,0 +1,10 @@
+When an interrupt occurs:
+ OPRI gets set to the PR from the previous code running
+ OIPI gets set to the IP from the previous code running
+ PR is set to all 1s
+
+The next interrupt will not occur until after the current processing has been finished via `ireti`
+
+When returning via ireth:
+ PR is set to OPRI
+ Execution jumps to OIPI
diff --git a/cpu/interrupts/hardware/execution.txt b/cpu/interrupts/hardware/execution.txt
deleted file mode 100644
index 1644994..0000000
--- a/cpu/interrupts/hardware/execution.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-When a hardware interrupt occurs:
- OPRH gets set to the PR from the previous code running
- OIPH gets set to the IP from the previous code running
- PR is set to all 1s
-
-The next hardware interrupt will not occur until after the current processing has been finished via `ireth`
-
-When returning via ireth:
- PR is set to OPRH
- Execution jumps to OIPH
diff --git a/cpu/interrupts/hardware/irqt.txt b/cpu/interrupts/irqt.txt
index f1f5792..f1f5792 100644
--- a/cpu/interrupts/hardware/irqt.txt
+++ b/cpu/interrupts/irqt.txt
diff --git a/cpu/interrupts/software/execution.txt b/cpu/interrupts/software/execution.txt
deleted file mode 100644
index 0cad31b..0000000
--- a/cpu/interrupts/software/execution.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-When calling a software interrupt:
- R0 gets overwritten with the current PR
- R1 gets overwritten with a pointer of the same segment as IP, pointing to the next instruction
- PR is set to all 1s
-
-When returning via iretp:
- PR is set to R0
- Execution jumps to R1
diff --git a/cpu/interrupts/software/idt.txt b/cpu/interrupts/software/idt.txt
deleted file mode 100644
index 7488808..0000000
--- a/cpu/interrupts/software/idt.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Each entry is n*2 bits long, where n is the current mode in bits
-TODO: Specify a limit for them
-
-It uses the following format:
- (higher address)
- +--------------------------------+
- | Pointer to executable code run |
- +--------------------------------+
- | Privileges required for usage |
- +--------------------------------+
- (lower address)