root / lab4 / .minix-src / include / x86 / fpu.h @ 14
History | View | Annotate | Download (1.24 KB)
1 |
/* $NetBSD: fpu.h,v 1.6 2014/02/25 22:16:52 dsl Exp $ */
|
---|---|
2 |
|
3 |
#ifndef _X86_FPU_H_
|
4 |
#define _X86_FPU_H_
|
5 |
|
6 |
#include <x86/cpu_extended_state.h> |
7 |
|
8 |
#ifdef _KERNEL
|
9 |
|
10 |
struct cpu_info;
|
11 |
struct lwp;
|
12 |
struct trapframe;
|
13 |
|
14 |
void fpuinit(struct cpu_info *); |
15 |
void fpusave_lwp(struct lwp *, bool); |
16 |
void fpusave_cpu(bool); |
17 |
|
18 |
void fpu_set_default_cw(struct lwp *, unsigned int); |
19 |
|
20 |
void fputrap(struct trapframe *); |
21 |
void fpudna(struct trapframe *); |
22 |
|
23 |
void process_xmm_to_s87(const struct fxsave *, struct save87 *); |
24 |
void process_s87_to_xmm(const struct save87 *, struct fxsave *); |
25 |
|
26 |
/* Set all to defaults (eg during exec) */
|
27 |
void fpu_save_area_clear(struct lwp *, unsigned int); |
28 |
/* Reset control words only - for signal handlers */
|
29 |
void fpu_save_area_reset(struct lwp *); |
30 |
|
31 |
/* Copy data outside pcb during fork */
|
32 |
void fpu_save_area_fork(struct pcb *, const struct pcb *); |
33 |
|
34 |
/* Load FP registers with user-supplied values */
|
35 |
void process_write_fpregs_xmm(struct lwp *lwp, const struct fxsave *fpregs); |
36 |
void process_write_fpregs_s87(struct lwp *lwp, const struct save87 *fpregs); |
37 |
|
38 |
/* Save FP registers for copy to userspace */
|
39 |
void process_read_fpregs_xmm(struct lwp *lwp, struct fxsave *fpregs); |
40 |
void process_read_fpregs_s87(struct lwp *lwp, struct save87 *fpregs); |
41 |
|
42 |
#endif
|
43 |
|
44 |
#endif /* _X86_FPU_H_ */ |