- /*
- 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 /* 前景闪烁 */
- /* ASSERT和PANIC有关的魔数 */
- #define MAGIC_CHAR_ASSERT '/002' /* ASSERT的标志 */
- #define MAGIC_CHAR_PANIC '/003' /* PANIC的标志 */
- /* IPC实现的系统调用功能号 */
- #define GET_TICKS 0 /* 得到Ticks值的功能号 */
- #endif