summaryrefslogtreecommitdiffstats
path: root/sys/boot/efi/include
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-11-19 07:09:47 +0000
committerpeter <peter@FreeBSD.org>2001-11-19 07:09:47 +0000
commitb866d91337d910a5e4c9bca541e45cdf536c9f86 (patch)
tree3f99748b80f843310be539b08923f86a3f25de87 /sys/boot/efi/include
parente5a267af198afb5695f7d201d9228e863d0355b7 (diff)
downloadFreeBSD-src-b866d91337d910a5e4c9bca541e45cdf536c9f86.zip
FreeBSD-src-b866d91337d910a5e4c9bca541e45cdf536c9f86.tar.gz
Lookup the EFI_FPSWA driver and pass the interface pointer through to the
kernel before we call ExitBootServices(). I've typed the definitions in efifpswa.h from the Intel FPSWA manual (urk).
Diffstat (limited to 'sys/boot/efi/include')
-rw-r--r--sys/boot/efi/include/efi.h1
-rw-r--r--sys/boot/efi/include/efifpswa.h40
2 files changed, 41 insertions, 0 deletions
diff --git a/sys/boot/efi/include/efi.h b/sys/boot/efi/include/efi.h
index ef63d82..c2e2906 100644
--- a/sys/boot/efi/include/efi.h
+++ b/sys/boot/efi/include/efi.h
@@ -44,6 +44,7 @@ Revision History
#include "efinet.h"
#include "efiapi.h"
#include "efifs.h"
+#include "efifpswa.h"
#include "efierr.h"
#endif
diff --git a/sys/boot/efi/include/efifpswa.h b/sys/boot/efi/include/efifpswa.h
new file mode 100644
index 0000000..5de9bb6
--- /dev/null
+++ b/sys/boot/efi/include/efifpswa.h
@@ -0,0 +1,40 @@
+/* $FreeBSD$ */
+#ifndef _EFI_FPSWA_H
+#define _EFI_FPSWA_H
+
+//
+// EFI FP SWA Driver (Floating Point Software Assist)
+//
+
+#define EFI_INTEL_FPSWA \
+ { 0xc41b6531, 0x97b9, 0x11d3, 0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d }
+
+INTERFACE_DECL(_FPSWA_INTERFACE);
+
+typedef struct _FPSWA_RET {
+ UINT64 status;
+ UINT64 err1;
+ UINT64 err2;
+ UINT64 err3;
+} FPSWA_RET;
+
+typedef
+FPSWA_RET
+(EFIAPI *EFI_FPSWA) (
+ IN UINTN TrapType,
+ IN OUT VOID *Bundle,
+ IN OUT UINT64 *pipsr,
+ IN OUT UINT64 *pfsr,
+ IN OUT UINT64 *pisr,
+ IN OUT UINT64 *ppreds,
+ IN OUT UINT64 *pifs,
+ IN OUT VOID *fp_state
+ );
+
+typedef struct _FPSWA_INTERFACE {
+ UINT32 Revision;
+ UINT32 Reserved;
+ EFI_FPSWA Fpswa;
+} FPSWA_INTERFACE;
+
+#endif
OpenPOWER on IntegriCloud