api.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 1994 Linus Torvalds
  4. *
  5. * Pentium III FXSR, SSE support
  6. * General FPU state handling cleanups
  7. * Gareth Hughes <gareth@valinux.com>, May 2000
  8. * x86-64 work by Andi Kleen 2002
  9. */
  10. #ifndef _ASM_X86_FPU_API_H
  11. #define _ASM_X86_FPU_API_H
  12. /*
  13. * Use kernel_fpu_begin/end() if you intend to use FPU in kernel context. It
  14. * disables preemption so be careful if you intend to use it for long periods
  15. * of time.
  16. * If you intend to use the FPU in softirq you need to check first with
  17. * irq_fpu_usable() if it is possible.
  18. */
  19. extern void kernel_fpu_begin(void);
  20. extern void kernel_fpu_end(void);
  21. extern bool irq_fpu_usable(void);
  22. /*
  23. * Query the presence of one or more xfeatures. Works on any legacy CPU as well.
  24. *
  25. * If 'feature_name' is set then put a human-readable description of
  26. * the feature there as well - this can be used to print error (or success)
  27. * messages.
  28. */
  29. extern int cpu_has_xfeatures(u64 xfeatures_mask, const char **feature_name);
  30. #endif /* _ASM_X86_FPU_API_H */