SCCS-vsn: sys/i386/isa/icu.h 5.7
* This code is derived from software contributed to Berkeley by
* William Jolitz.
*
* This code is derived from software contributed to Berkeley by
* William Jolitz.
*
- * %sccs.include.redist.c%
- * @(#)icu.h 5.6 (Berkeley) %G%
+ * @(#)icu.h 5.7 (Berkeley) %G%
/* Mask a group of interrupts atomically */
#define INTR(unit,mask,offst) \
/* Mask a group of interrupts atomically */
#define INTR(unit,mask,offst) \
- push %ds ; \
- push %es ; \
+ nop ; \
+ movb $0x20,%al ; \
+ outb %al,$ IO_ICU1 ; \
+ outb %al,$ IO_ICU2 ; \
+ pushl %ds ; \
+ pushl %es ; \
movw $0x10, %ax ; \
movw %ax, %ds ; \
movw %ax,%es ; \
movw $0x10, %ax ; \
movw %ax, %ds ; \
movw %ax,%es ; \
orw mask ,%ax ; \
movw %ax,_cpl ; \
orw _imen,%ax ; \
orw mask ,%ax ; \
movw %ax,_cpl ; \
orw _imen,%ax ; \
movb %ah,%al ; \
outb %al,$ IO_ICU2+1 ; \
movb %ah,%al ; \
outb %al,$ IO_ICU2+1 ; \
- NOP ; \
- inb $0x84,%al ; \
- sti
/* Interrupt vector exit macros */
/* First eight interrupts (ICU1) */
#define INTREXIT1 \
/* Interrupt vector exit macros */
/* First eight interrupts (ICU1) */
#define INTREXIT1 \
- movb $0x20,%al ; \
- outb %al,$ IO_ICU1 ; \
jmp doreti
/* Second eight interrupts (ICU2) */
#define INTREXIT2 \
jmp doreti
/* Second eight interrupts (ICU2) */
#define INTREXIT2 \
- movb $0x20,%al ; \
- outb %al,$ IO_ICU1 ; \
- outb %al,$ IO_ICU2 ; \