patch-2.1.34 linux/include/asm-i386/irq.h
Next file: linux/include/asm-i386/semaphore.h
Previous file: linux/include/asm-i386/io.h
Back to the patch index
Back to the overall index
- Lines: 44
- Date:
Sun Apr 13 20:41:16 1997
- Orig file:
v2.1.33/linux/include/asm-i386/irq.h
- Orig date:
Sun Apr 13 10:18:22 1997
diff -u --recursive --new-file v2.1.33/linux/include/asm-i386/irq.h linux/include/asm-i386/irq.h
@@ -72,6 +72,24 @@
"iret"
/*
+ * Some fast irq handlers might want to access saved registers (mostly
+ * cs or flags)
+ */
+
+struct fast_irq_regs {
+ long ecx;
+ long edx;
+ long eax;
+ int xds;
+ int xes;
+ long eip;
+ int xcs;
+ long eflags;
+ long esp;
+ int xss;
+};
+
+/*
* The "inb" instructions are not needed, but seem to change the timings
* a bit - without them it seems that the harddisk driver won't work on
* all hardware. Arghh.
@@ -161,12 +179,13 @@
__asm__( \
"\n"__ALIGN_STR"\n" \
SYMBOL_NAME_STR(x) ":\n\t" \
- SAVE_MOST \
- "movl %esp,%eax\n\t" \
- "pushl %eax\n\t" \
+ "pushl $-1\n\t" \
+ SAVE_ALL \
+ "movl %esp,%eax\n\t" \
+ "pushl %eax\n\t" \
"call "SYMBOL_NAME_STR(smp_##x)"\n\t" \
- "addl $4,%esp\n\t" \
- RESTORE_MOST);
+ "addl $4,%esp\n\t" \
+ "jmp ret_from_intr\n");
#endif /* __SMP__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov