自己动手写操作系统的光盘资料,是学习操作系统的很好资料

源代码在线查看: const.h

软件大小: 1336 K
上传用户: yeshuqin
关键词: 操作系统 自己动手 光盘
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
				                            const.h
				++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
				                                                    Forrest Yu, 2005
				++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
				
				#ifndef	_TINIX_CONST_H_
				#define	_TINIX_CONST_H_
				
				
				/* EXTERN */
				#define	EXTERN	extern	/* EXTERN is defined as extern except in global.c */
				
				/* 函数类型 */
				#define	PUBLIC		/* PUBLIC is the opposite of PRIVATE */
				#define	PRIVATE	static	/* PRIVATE x limits the scope of x */
				
				/* Boolean */
				#define	TRUE	1
				#define	FALSE	0
				
				/* Color */
				/*
				 * e.g.	MAKE_COLOR(BLUE, RED)
				 *	MAKE_COLOR(BLACK, RED) | BRIGHT
				 *	MAKE_COLOR(BLACK, RED) | BRIGHT | FLASH
				 */
				#define	BLACK	0x0	/* 0000 */
				#define	WHITE	0x7	/* 0111 */
				#define	RED	0x4	/* 0100 */
				#define	GREEN	0x2	/* 0010 */
				#define	BLUE	0x1	/* 0001 */
				#define	FLASH	0x80	/* 1000 0000 */
				#define	BRIGHT	0x08	/* 0000 1000 */
				#define	MAKE_COLOR(x,y)	(x | y)	/* MAKE_COLOR(Background,Foreground) */
				
				/* GDT 和 IDT 中描述符的个数 */
				#define	GDT_SIZE	128
				#define	IDT_SIZE	256
				
				/* 权限 */
				#define	PRIVILEGE_KRNL	0
				#define	PRIVILEGE_TASK	1
				#define	PRIVILEGE_USER	3
				/* RPL */
				#define	RPL_KRNL	SA_RPL0
				#define	RPL_TASK	SA_RPL1
				#define	RPL_USER	SA_RPL3
				
				/* 8259A interrupt controller ports. */
				#define	INT_M_CTL	0x20	/* I/O port for interrupt controller          */
				#define	INT_M_CTLMASK	0x21	/* setting bits in this port disables ints    */
				#define	INT_S_CTL	0xA0	/* I/O port for second interrupt controller    */
				#define	INT_S_CTLMASK	0xA1	/* setting bits in this port disables ints     */
				
				/* 8253/8254 PIT (Programmable Interval Timer) */
				#define TIMER0          0x40	/* I/O port for timer channel 0 */
				#define TIMER_MODE      0x43	/* I/O port for timer mode control */
				#define RATE_GENERATOR	0x34	/* 00-11-010-0 : Counter0 - LSB then MSB - rate generator - binary */
				#define TIMER_FREQ	1193182L/* clock frequency for timer in PC and AT */
				#define HZ		100	/* clock freq (software settable on IBM-PC) */
				
				/* AT keyboard */
				/* 8042 ports */
				#define	KB_DATA		0x60	/* I/O port for keyboard data
									Read : Read Output Buffer 
									Write: Write Input Buffer(8042 Data&8048 Command) */
				#define	KB_CMD		0x64	/* I/O port for keyboard command
									Read : Read Status Register
									Write: Write Input Buffer(8042 Command) */
				
				/* Hardware interrupts */
				#define	NR_IRQ		16	/* Number of IRQs */
				#define	CLOCK_IRQ	0
				#define	KEYBOARD_IRQ	1
				#define	CASCADE_IRQ	2	/* cascade enable for 2nd AT controller */
				#define	ETHER_IRQ	3	/* default ethernet interrupt vector */
				#define	SECONDARY_IRQ	3	/* RS232 interrupt vector for port 2 */
				#define	RS232_IRQ	4	/* RS232 interrupt vector for port 1 */
				#define	XT_WINI_IRQ	5	/* xt winchester */
				#define	FLOPPY_IRQ	6	/* floppy disk */
				#define	PRINTER_IRQ	7
				#define	AT_WINI_IRQ	14	/* at winchester */
				
				
				/* system call */
				#define	NR_SYS_CALL	1
				
				
				#endif /* _TINIX_CONST_H_ */
							

相关资源