1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * FPU data structures 4 * 5 * Copyright IBM Corp. 2015 6 * Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com> 7 */ 8 9 #ifndef _ASM_S390_FPU_TYPES_H 10 #define _ASM_S390_FPU_TYPES_H 11 12 #include <asm/sigcontext.h> 13 14 struct fpu { 15 __u32 fpc; /* Floating-point control */ 16 void *regs; /* Pointer to the current save area */ 17 union { 18 /* Floating-point register save area */ 19 freg_t fprs[__NUM_FPRS]; 20 /* Vector register save area */ 21 __vector128 vxrs[__NUM_VXRS]; 22 }; 23 }; 24 25 /* VX array structure for address operand constraints in inline assemblies */ 26 struct vx_array { __vector128 _[__NUM_VXRS]; }; 27 28 /* In-kernel FPU state structure */ 29 struct kernel_fpu { 30 u32 mask; 31 u32 fpc; 32 union { 33 freg_t fprs[__NUM_FPRS]; 34 __vector128 vxrs[__NUM_VXRS]; 35 }; 36 }; 37 38 #endif /* _ASM_S390_FPU_TYPES_H */