def.h

来自「别人的根据linux0.11改的一个小的操作系统」· C头文件 代码 · 共 54 行

H
54
字号
/*
 * def.h
 * There have some constants that we will use.
 */
#ifndef _DEF_H
#define _DEF_H

#define NULL	(void *)0x0000                 /* Mark the null pointer */

#define	CODESEL		0x0008                     /* Code segment selector, global... */
#define	DATASEL		0x0010                     /* Data segment selector, global... */
#define	VIDEOSEL	0x0018                     /* Display buffer segment selector, global... */

#define	PG_DIR		0x0000                     /* Page directory start with here. */
#define	PG_DIR_LEN	0x1000                     /* The length of page directory is 0x1000. */

#define	PG_LEN		0x1000                     /* The length per memory page. */

#define	PG0         0x1000                     /* page table 0 start with here */
#define	PG1         0x2000                     /* page table 1 ... */
#define	PG2         0x3000
#define	PG3         0x4000
#define	PG4         0x5000
#define	PG5         0x6000
#define	PG6         0x7000
#define	PG7         0x8000
#define	GDT_LEN		0x0800
#define	IDT_LEN		0x0800

void outportb(unsigned short, unsigned char);
unsigned char inportb(unsigned short);          /* In fact,those ougth to be declared in stdio.h */

/* Read data from CMOS */
#define CMOS_READ(addr) ({\
		outportb(0x80|addr,0x70);\
		inportb(0x71);\
		})

/*there have some macro used for setting or getting cursor position */
extern unsigned long _scr_loc;		            /* The _scr_loc define at file system.asm. */
#define	setCursor(col,row) (_scr_loc=((row)*160+(col)))
#define getCursorCol()	(_scr_loc%160)
#define getCursorRow()	(_scr_loc/160)

void clrscr();
void scrup();
void print(char *);

extern unsigned long _jiffs;                    /* Mark the ticks. */

extern void showChar(char);                     /* Show a char. */

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?