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; 16 __vector128 vxrs[__NUM_VXRS] __aligned(8); 17 }; 18 19 struct kernel_fpu_hdr { 20 int mask; 21 u32 fpc; 22 }; 23 24 struct kernel_fpu { 25 struct kernel_fpu_hdr hdr; 26 __vector128 vxrs[] __aligned(8); 27 }; 28 29 #define KERNEL_FPU_STRUCT(vxr_size) \ 30 struct kernel_fpu_##vxr_size { \ 31 struct kernel_fpu_hdr hdr; \ 32 __vector128 vxrs[vxr_size] __aligned(8); \ 33 } 34 35 KERNEL_FPU_STRUCT(8); 36 KERNEL_FPU_STRUCT(16); 37 KERNEL_FPU_STRUCT(32); 38 39 #define DECLARE_KERNEL_FPU_ONSTACK(vxr_size, name) \ 40 struct kernel_fpu_##vxr_size name __uninitialized 41 42 #define DECLARE_KERNEL_FPU_ONSTACK8(name) \ 43 DECLARE_KERNEL_FPU_ONSTACK(8, name) 44 45 #define DECLARE_KERNEL_FPU_ONSTACK16(name) \ 46 DECLARE_KERNEL_FPU_ONSTACK(16, name) 47 48 #define DECLARE_KERNEL_FPU_ONSTACK32(name) \ 49 DECLARE_KERNEL_FPU_ONSTACK(32, name) 50 51 #endif /* _ASM_S390_FPU_TYPES_H */ 52