summaryrefslogtreecommitdiff
path: root/nuttx/arch/x86/include/i486/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/x86/include/i486/irq.h')
-rwxr-xr-xnuttx/arch/x86/include/i486/irq.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/nuttx/arch/x86/include/i486/irq.h b/nuttx/arch/x86/include/i486/irq.h
index c82c92859..cb78e4d81 100755
--- a/nuttx/arch/x86/include/i486/irq.h
+++ b/nuttx/arch/x86/include/i486/irq.h
@@ -62,19 +62,25 @@
#define REG_EDI (1) /* Saved by pusha */
#define REG_ESI (2) /* " " "" " " */
#define REG_EBP (3) /* " " "" " " */
-#define REG_ESP (4) /* " " "" " " */
+#define REG_ESP (4) /* " " "" " " (NOTE 1)*/
#define REG_EBX (5) /* " " "" " " */
#define REG_EDX (6) /* " " "" " " */
#define REG_ECX (7) /* " " "" " " */
#define REG_EAX (8) /* " " "" " " */
-#define REG_IRQNO (9) /* Interrupt number */
-#define REG_ERRCODE (10) /* Error code */
+#define REG_IRQNO (9) /* Interrupt number (NOTE 2) */
+#define REG_ERRCODE (10) /* Error code (NOTE 2) */
#define REG_EIP (11) /* Pushed by process on interrupt processing */
#define REG_CS (12) /* " " "" " " "" " " " " */
#define REG_EFLAGS (13) /* " " "" " " "" " " " " */
#define REG_SP (14) /* " " "" " " "" " " " " */
#define REG_SS (15) /* " " "" " " "" " " " " */
+/* NOTE 1: Two versions of the ESP are saved: One from the interrupt
+ * processing and one from pusha. Only the interrupt ESP (REG_SP) is used.
+ * NOTE 2: This is not really state data. Rather, this is just a convenient
+ * way to pass parameters from the interrupt handler to C cod.
+ */
+
#define XCPTCONTEXT_REGS (16)
#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS)