summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/npx.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-08-30 17:48:38 +0000
committerjhb <jhb@FreeBSD.org>2014-08-30 17:48:38 +0000
commit59920f0385bc86c9159aeebee9795c9ad51ad015 (patch)
tree53ddc1033d8b92c20a9eb8e8550f39931d7ecc2d /sys/i386/include/npx.h
parentaabd08ca3c41f295266de306383e555c3e499125 (diff)
downloadFreeBSD-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.h2
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 *);
OpenPOWER on IntegriCloud