irqs.s
来自「南京航空航天大学开发的一个类Unix和Linux的操作系统,好不好看看就知道了,」· S 代码 · 共 49 行
S
49 行
#include <lib/gcc.h>#include "irq.h"#include "frame.h"#include "seg.h" /* for KCODESEL */#define HEAD(irqno) \ ENTRY(irq##irqno) \ pushl $irqno; \ PUSHALL; \ LOADSEG; \ call doirq#define TAIL(irqno) \ cmpl $KCODESEL,CS(%esp); \ je 1f; \ call rettouser; \1: POPALL; \ addl $4,%esp; \ iret#define MASTER(irqno) \HEAD(irqno); \movb $EOIVALUE,%al; outb %al,$M8259EOI; .word 0x00eb,0x00eb; \TAIL(irqno)#define SLAVER(irqno) \HEAD(irqno); \movb $EOIVALUE,%al; outb %al,$S8259EOI; .word 0x00eb,0x00eb; \movb $EOIVALUE,%al; outb %al,$M8259EOI; .word 0x00eb,0x00eb; \TAIL(irqno)MASTER(0x00)MASTER(0x01)MASTER(0x02)MASTER(0x03)MASTER(0x04)MASTER(0x05)MASTER(0x06)MASTER(0x07)SLAVER(0x08)SLAVER(0x09)SLAVER(0x0a)SLAVER(0x0b)SLAVER(0x0c)SLAVER(0x0d)SLAVER(0x0e)SLAVER(0x0f)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?