|
|
1.1 ! root 1: /*---------------------------------------------------------------------------+ ! 2: | fpu_system.h | ! 3: | | ! 4: | Copyright (C) 1992 W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | ! 5: | Australia. E-mail [email protected] | ! 6: | | ! 7: +---------------------------------------------------------------------------*/ ! 8: ! 9: #ifndef _FPU_SYSTEM_H ! 10: #define _FPU_SYSTEM_H ! 11: ! 12: /* system dependent definitions */ ! 13: #ifdef COHERENT ! 14: #include <sys/reg.h> ! 15: #include <ieeefp.h> ! 16: ! 17: extern int printf(const char * fmt, ...); ! 18: #define NULL ((void *)0) ! 19: ! 20: /* FPU_info will be a pointer to _fpemstate */ ! 21: /* current will be a pointer to _fpstackframe */ ! 22: ! 23: #define FPU_CS (*(unsigned short *) &(emCurrent->regs[CS])) ! 24: #define FPU_DS (*(unsigned short *) &(emCurrent->regs[DS])) ! 25: #define FPU_EAX (emCurrent->regs[EAX]) ! 26: #define FPU_EFLAGS (emCurrent->regs[EFL]) ! 27: #define FPU_EIP (emCurrent->regs[EIP]) ! 28: ! 29: #define FPU_lookahead (FPU_info->lookahead) ! 30: #define FPU_entry_eip (FPU_info->entry_eip) ! 31: #define fpregs (FPU_info->regs) ! 32: #define top (FPU_info->top) ! 33: #if 0 ! 34: #define FPU_ORIG_EIP (FPU_info->ipoff) ! 35: #else ! 36: #define FPU_ORIG_EIP FPU_EIP ! 37: #endif ! 38: #define status_word (FPU_info->sw) ! 39: #define control_word (FPU_info->cw) ! 40: ! 41: #define ip_offset (FPU_info->ipoff) ! 42: #define cs_selector (FPU_info->cssel) ! 43: #define data_operand_offset (FPU_info->dataoff) ! 44: #define operand_selector (FPU_info->datasel) ! 45: ! 46: extern struct _fpemstate *FPU_info; ! 47: extern struct _fpstackframe *emCurrent; ! 48: ! 49: #else ! 50: ! 51: #include <linux/sched.h> ! 52: #include <linux/kernel.h> ! 53: ! 54: #define I387 (emCurrent->tss.i387) ! 55: #define FPU_info (I387.soft.info) ! 56: ! 57: #define FPU_CS (*(unsigned short *) &(FPU_info->___cs)) ! 58: #define FPU_DS (*(unsigned short *) &(FPU_info->___ds)) ! 59: #define FPU_EAX (FPU_info->___eax) ! 60: #define FPU_EFLAGS (FPU_info->___eflags) ! 61: #define FPU_EIP (FPU_info->___eip) ! 62: #define FPU_ORIG_EIP (FPU_info->___orig_eip) ! 63: ! 64: #define FPU_lookahead (I387.soft.lookahead) ! 65: #define FPU_entry_eip (I387.soft.entry_eip) ! 66: ! 67: #define status_word (I387.soft.swd) ! 68: #define control_word (I387.soft.cwd) ! 69: #define fpregs (I387.soft.regs) ! 70: #define top (I387.soft.top) ! 71: ! 72: #define ip_offset (I387.soft.fip) ! 73: #define cs_selector (I387.soft.fcs) ! 74: #define data_operand_offset (I387.soft.foo) ! 75: #define operand_selector (I387.soft.fos) ! 76: ! 77: #endif ! 78: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.