diff options
author | jhb <jhb@FreeBSD.org> | 2014-08-30 17:48:38 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2014-08-30 17:48:38 +0000 |
commit | 59920f0385bc86c9159aeebee9795c9ad51ad015 (patch) | |
tree | 53ddc1033d8b92c20a9eb8e8550f39931d7ecc2d /sys/i386/include/npx.h | |
parent | aabd08ca3c41f295266de306383e555c3e499125 (diff) | |
download | FreeBSD-src-59920f0385bc86c9159aeebee9795c9ad51ad015.zip FreeBSD-src-59920f0385bc86c9159aeebee9795c9ad51ad015.tar.gz |
Save and restore FPU state across suspend and resume. In earlier revisions
of this patch, resumectx() called npxresume() directly, but that doesn't
work because resumectx() runs with a non-standard %cs selector. Instead,
all of the FPU suspend/resume handling is done in C.
MFC after: 1 week
Diffstat (limited to 'sys/i386/include/npx.h')
-rw-r--r-- | sys/i386/include/npx.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/i386/include/npx.h b/sys/i386/include/npx.h index 19e9b31..de55207 100644 --- a/sys/i386/include/npx.h +++ b/sys/i386/include/npx.h @@ -53,8 +53,10 @@ void npxexit(struct thread *td); int npxformat(void); int npxgetregs(struct thread *td); void npxinit(void); +void npxresume(union savefpu *addr); void npxsave(union savefpu *addr); void npxsetregs(struct thread *td, union savefpu *addr); +void npxsuspend(union savefpu *addr); int npxtrap_x87(void); int npxtrap_sse(void); void npxuserinited(struct thread *); |