1 /* 2 * seagate2.S 3 * low level scsi driver for ST01/ST02 by 4 * Drew Eckhardt 5 * 6 * <drew@colorado.edu> 7 */ 8 .text 9 .globl _seagate_intr 10 _seagate_intr: 11 cld # GCC thing 12 13 pushal 14 push %ds 15 push %es 16 17 mov $0x10, %ax # switch to kernel space 18 mov %ax, %ds 19 mov %ax, %es 20 21 22 23 xor %eax, %eax 24 xchg _do_seagate, %eax 25 test %eax, %eax 26 jnz 1f 27 mov $_seagate_unexpected_intr, %eax 28 1: call *%eax 29 30 mov $0x20, %al # non-specific EOI 31 out %al, $0x20 32 33 pop %es 34 pop %ds 35 popal 36 iret