fpu.h revision 1.21 1 1.21 riastrad /* $NetBSD: fpu.h,v 1.21 2020/06/14 16:12:05 riastradh Exp $ */
2 1.1 dsl
3 1.2 dsl #ifndef _X86_FPU_H_
4 1.2 dsl #define _X86_FPU_H_
5 1.1 dsl
6 1.1 dsl #include <x86/cpu_extended_state.h>
7 1.1 dsl
8 1.1 dsl #ifdef _KERNEL
9 1.2 dsl
10 1.3 dsl struct cpu_info;
11 1.3 dsl struct lwp;
12 1.1 dsl struct trapframe;
13 1.1 dsl
14 1.1 dsl void fpuinit(struct cpu_info *);
15 1.12 maxv void fpuinit_mxcsr_mask(void);
16 1.13 maxv
17 1.14 maxv void fpu_area_save(void *, uint64_t);
18 1.21 riastrad void fpu_area_restore(const void *, uint64_t);
19 1.13 maxv
20 1.19 maxv void fpu_save(void);
21 1.1 dsl
22 1.5 dsl void fpu_set_default_cw(struct lwp *, unsigned int);
23 1.5 dsl
24 1.2 dsl void fputrap(struct trapframe *);
25 1.2 dsl void fpudna(struct trapframe *);
26 1.2 dsl
27 1.16 maxv void fpu_clear(struct lwp *, unsigned int);
28 1.16 maxv void fpu_sigreset(struct lwp *);
29 1.3 dsl
30 1.19 maxv void fpu_lwp_fork(struct lwp *, struct lwp *);
31 1.19 maxv void fpu_lwp_abandon(struct lwp *l);
32 1.6 dsl
33 1.20 maxv void fpu_kern_enter(void);
34 1.20 maxv void fpu_kern_leave(void);
35 1.20 maxv
36 1.15 maxv void process_write_fpregs_xmm(struct lwp *, const struct fxsave *);
37 1.15 maxv void process_write_fpregs_s87(struct lwp *, const struct save87 *);
38 1.15 maxv
39 1.15 maxv void process_read_fpregs_xmm(struct lwp *, struct fxsave *);
40 1.15 maxv void process_read_fpregs_s87(struct lwp *, struct save87 *);
41 1.4 dsl
42 1.17 mgorny int process_read_xstate(struct lwp *, struct xstate *);
43 1.17 mgorny int process_verify_xstate(const struct xstate *);
44 1.17 mgorny int process_write_xstate(struct lwp *, const struct xstate *);
45 1.17 mgorny
46 1.1 dsl #endif
47 1.1 dsl
48 1.2 dsl #endif /* _X86_FPU_H_ */
49