📄 kernel.h
字号:
/*文件名: kernel.h 说明: 作者: marsinfan 日期: 2005/12/07*/#ifndef _LINUX_KERNEL_H#define _LINUX_KERNEL_H#include <fairysky/types.h>#define PARAMS 0x0500typedef struct params_info { u8 cusor_x; //光标位置 u8 cusor_y; //光标位置 u8 mem_size; //物理内存大小,已转化为M u8 nouse1; u8 display_page; //当前显示页面 u8 nouse2; u8 video_mode; //显示模式 u8 window_width; //字符列数 s16 nouse3; u8 vidio_mem_size; //显示内存 u8 display_stat; //显示状态 s16 vidio_param; //显卡特性参数 u8 BIOS[32]; //硬盘参数表 s16 DEV_ROOT; //根文件系统设备号}__attribute__((packed)) PARAMS_INFO;extern PARAMS_INFO *pparams;/* * 'kernel.h' contains some often-used function prototypes etc */#define PAGE_OFFSET 0xC0000000 //进行分页后,内核所在的虚拟地址//虚拟地址转化为物理地址#define vaddr_to_paddr(vaddr) \ ((addr_t)(vaddr) - PAGE_OFFSET)//物理地址转化为虚拟地址#define paddr_to_vaddr(paddr) \ ((addr_t)((paddr) + PAGE_OFFSET))//物理地址转化为页面索引#define paddr_to_index(paddr) \ ((paddr) >> 12)//页面索引转化为物理地址#define index_to_paddr(index) \ ((index) << 12)//页面索引转化为虚拟地址#define index_to_vaddr(index) \ (paddr_to_vaddr(index_to_paddr(index)))//虚拟地址转化为页面索引#define vaddr_to_index(vaddr) \ (paddr_to_index(vaddr_to_paddr(vaddr)))void verify_area(void * addr, size_t size);//volatile void do_exit(long error_code);int printk(const char *fmt, ...);void print_hex(void *buf, size_t count);extern int panic(const char *s);extern int sprintf(char *str, const char *fmt, ...);//void * malloc(unsigned int size);//void free_s(void * obj, int size);//#define free(x) free_s((x), 0)/* * This is defined as a macro, but at some point this might become a * real subroutine that sets a flag if it returns true (to do * BSD-style accounting where the process is flagged if it uses root * privs). The implication of this is that you should do normal * permissions checks first, and check suser() last. *///#define suser() (current->euid == 0)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -