⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpu_system.h

📁 LINUX1.0内核源代码,学习LINUX编程的一定要看。
💻 H
字号:
/*---------------------------------------------------------------------------+ |  fpu_system.h                                                             | |                                                                           | | Copyright (C) 1992,1994                                                   | |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      | |                       Australia.  E-mail   billm@vaxc.cc.monash.edu.au    | |                                                                           | +---------------------------------------------------------------------------*/#ifndef _FPU_SYSTEM_H#define _FPU_SYSTEM_H/* system dependent definitions */#include <linux/sched.h>#include <linux/kernel.h>/* This sets the pointer FPU_info to point to the argument part   of the stack frame of math_emulate() */#define SETUP_DATA_AREA(arg)    FPU_info = (struct info *) &arg#define I387			(current->tss.i387)#define FPU_info		(I387.soft.info)#define FPU_CS			(*(unsigned short *) &(FPU_info->___cs))#define FPU_SS			(*(unsigned short *) &(FPU_info->___ss))#define FPU_DS			(*(unsigned short *) &(FPU_info->___ds))#define FPU_EAX			(FPU_info->___eax)#define FPU_EFLAGS		(FPU_info->___eflags)#define FPU_EIP			(FPU_info->___eip)#define FPU_ORIG_EIP		(FPU_info->___orig_eip)#define FPU_lookahead           (I387.soft.lookahead)#define FPU_entry_eip           (I387.soft.entry_eip)#define partial_status       	(I387.soft.swd)#define control_word		(I387.soft.cwd)#define regs			(I387.soft.regs)#define top			(I387.soft.top)#define ip_offset		(I387.soft.fip)#define cs_selector		(I387.soft.fcs)#define data_operand_offset	(I387.soft.foo)#define operand_selector	(I387.soft.fos)#define FPU_verify_area(x,y,z)  if ( verify_area(x,y,z) ) \                                math_abort(FPU_info,SIGSEGV)#undef FPU_IGNORE_CODE_SEGV#ifdef FPU_IGNORE_CODE_SEGV/* verify_area() is very expensive, and causes the emulator to run   about 20% slower if applied to the code. Anyway, errors due to bad   code addresses should be much rarer than errors due to bad data   addresses. */#define	FPU_code_verify_area(z)#else/* A simpler test than verify_area() can probably be done for   FPU_code_verify_area() because the only possible error is to step   past the upper boundary of a legal code area. */#define	FPU_code_verify_area(z) FPU_verify_area(VERIFY_READ,(void *)FPU_EIP,z)#endif/* ######## temporary and ugly ;-) */#define FPU_data_address        ((void *)(I387.soft.twd))#endif

⌨️ 快捷键说明

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