fpu.h revision 1.19 1 1.19 maxv /* $NetBSD: fpu.h,v 1.19 2019/10/12 06:31:03 maxv 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.14 maxv void fpu_area_restore(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.15 maxv void process_write_fpregs_xmm(struct lwp *, const struct fxsave *);
34 1.15 maxv void process_write_fpregs_s87(struct lwp *, const struct save87 *);
35 1.15 maxv
36 1.15 maxv void process_read_fpregs_xmm(struct lwp *, struct fxsave *);
37 1.15 maxv void process_read_fpregs_s87(struct lwp *, struct save87 *);
38 1.4 dsl
39 1.17 mgorny int process_read_xstate(struct lwp *, struct xstate *);
40 1.17 mgorny int process_verify_xstate(const struct xstate *);
41 1.17 mgorny int process_write_xstate(struct lwp *, const struct xstate *);
42 1.17 mgorny
43 1.1 dsl #endif
44 1.1 dsl
45 1.2 dsl #endif /* _X86_FPU_H_ */
46