/* By Marcus Xing include/const.h 在内核中使用的一些常量 */ /*forward include:none */ #ifndef _CONST_H_ #define _CONST_H_ #define GDT_SIZE 128 /* GDT的描述符个数 */ #define IDT_SIZE 255 /* IDT的描述符个数 */ #define IRQ_NUM 16 /* 外中断的个数 */ #define SYSTEM_CALL_HANDLER_NUM 3 /* 系统调用的个数 */ #define INT_MASTER_CTL 0x20 /* 8259A主片的控制端口号1 */ #define INT_SLAVE_CTL 0xa0 /* 8259A从片的控制端口号1 */ #define INT_MASTER_CTLMSK 0x21 /* 8259A主片的控制端口号2 */ #define INT_SLAVE_CTLMSK 0xa1 /* 8259A从片的控制端口号2 */ #define COUNTER0 0x40 /* 8253Counter0端口号 */ #define MODE_CTL 0x43 /* 8253模式控制寄存器 */ #define PC_FREQ 1193182L /* PC的频率 */ #define MY_HZ 100 /* 1秒钟发生100次时钟中断,即每隔0.01秒发生1次 */ /* 以下跟显存操作有关 */ #define CRTC_ADDR_REG 0x3d4 /* CRT控制数据地址寄存器端口 */ #define CRTC_DATA_REG 0x3d5 /* CRT控制数据寄存器端口 */ #define START_ADDR_H 0xc /* 操作显示位置高字节的端口索引 */ #define START_ADDR_L 0xd /* 操作显示位置低字节的端口索引 */ #define CURSOR_H 0xe /* 操作光标位置高字节的端口索引 */ #define CURSOR_L 0xf /* 操作光标位置低字节的端口索引 */ #define VIDEO_START_ADDR 0xb8000 /* 显存的起始位置 */ #define VIDEO_MEM_SIZE 0x8000 /* 显存的大小 */ /* 以下跟80 * 25文本模式下的颜色值有关 */ #define BLACK 0x0 /* 黑色 */ #define BLUE 0x1 /* 蓝色 */ #define GREEN 0x2 /* 绿色 */ #define CYAN 0x3 /* 青色 */ #define RED 0x4 /* 红色 */ #define MAGENTA 0x5 /* 洋红 */ #define BROWN 0x6 /* 褐色 */ #define WHITE 0x7 /* 白色 */ #define BRIGHT 0x8 /* 前景发亮 */ #define TWINKLE 0xf /* 前景闪烁 */ #endif