1 /* 2 * include/asm-i386/i387.h 3 * 4 * Copyright (C) 1994 Linus Torvalds 5 * 6 * Pentium III FXSR, SSE support 7 * General FPU state handling cleanups 8 * Gareth Hughes <gareth@valinux.com>, May 2000 9 */ 10 11 #ifndef __ASM_I386_I387_H 12 #define __ASM_I386_I387_H 13 14 #include <xen/types.h> 15 #include <xen/percpu.h> 16 17 /* Byte offset of the stored word size within the FXSAVE area/portion. */ 18 #define FPU_WORD_SIZE_OFFSET 511 19 20 struct ix87_env { 21 uint16_t fcw, _res0; 22 uint16_t fsw, _res1; 23 uint16_t ftw, _res2; 24 uint32_t fip; 25 uint16_t fcs; 26 uint16_t fop; 27 uint32_t fdp; 28 uint16_t fds, _res6; 29 }; 30 31 void vcpu_restore_fpu_eager(struct vcpu *v); 32 void vcpu_restore_fpu_lazy(struct vcpu *v); 33 void vcpu_save_fpu(struct vcpu *v); 34 void save_fpu_enable(void); 35 36 int vcpu_init_fpu(struct vcpu *v); 37 void vcpu_destroy_fpu(struct vcpu *v); 38 #endif /* __ASM_I386_I387_H */ 39