internal.h 643 B

12345678910111213141516171819202122232425262728
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __X86_KERNEL_FPU_INTERNAL_H
  3. #define __X86_KERNEL_FPU_INTERNAL_H
  4. extern struct fpstate init_fpstate;
  5. /* CPU feature check wrappers */
  6. static __always_inline __pure bool use_xsave(void)
  7. {
  8. return cpu_feature_enabled(X86_FEATURE_XSAVE);
  9. }
  10. static __always_inline __pure bool use_fxsr(void)
  11. {
  12. return cpu_feature_enabled(X86_FEATURE_FXSR);
  13. }
  14. #ifdef CONFIG_X86_DEBUG_FPU
  15. # define WARN_ON_FPU(x) WARN_ON_ONCE(x)
  16. #else
  17. # define WARN_ON_FPU(x) ({ (void)(x); 0; })
  18. #endif
  19. /* Used in init.c */
  20. extern void fpstate_init_user(struct fpstate *fpstate);
  21. extern void fpstate_reset(struct fpu *fpu);
  22. #endif