xref: /openbsd-src/sys/stand/efi/include/efifpswa.h (revision aa2a8ca5e5140b61be1a50d5e92ee775499a1008)
1060fee10Skettenis /* $FreeBSD: head/sys/boot/efi/include/efifpswa.h 96893 2002-05-19 03:17:22Z marcel $ */
2060fee10Skettenis #ifndef _EFI_FPSWA_H
3060fee10Skettenis #define _EFI_FPSWA_H
4060fee10Skettenis 
5060fee10Skettenis /*
6060fee10Skettenis  * EFI FP SWA Driver (Floating Point Software Assist)
7060fee10Skettenis  */
8060fee10Skettenis 
9060fee10Skettenis #define EFI_INTEL_FPSWA \
10*aa2a8ca5Sjsg     { 0xc41b6531, 0x97b9, 0x11d3, { 0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
11060fee10Skettenis 
12060fee10Skettenis INTERFACE_DECL(_FPSWA_INTERFACE);
13060fee10Skettenis 
14060fee10Skettenis typedef struct _FPSWA_RET {
15060fee10Skettenis     UINT64                          status;
16060fee10Skettenis     UINT64                          err1;
17060fee10Skettenis     UINT64                          err2;
18060fee10Skettenis     UINT64                          err3;
19060fee10Skettenis } FPSWA_RET;
20060fee10Skettenis 
21060fee10Skettenis typedef
22060fee10Skettenis FPSWA_RET
23060fee10Skettenis (EFIAPI *EFI_FPSWA) (
24060fee10Skettenis     IN UINTN                        TrapType,
25060fee10Skettenis     IN OUT VOID                     *Bundle,
26060fee10Skettenis     IN OUT UINT64                   *pipsr,
27060fee10Skettenis     IN OUT UINT64                   *pfsr,
28060fee10Skettenis     IN OUT UINT64                   *pisr,
29060fee10Skettenis     IN OUT UINT64                   *ppreds,
30060fee10Skettenis     IN OUT UINT64                   *pifs,
31060fee10Skettenis     IN OUT VOID                     *fp_state
32060fee10Skettenis     );
33060fee10Skettenis 
34060fee10Skettenis typedef struct _FPSWA_INTERFACE {
35060fee10Skettenis     UINT32                          Revision;
36060fee10Skettenis     UINT32                          Reserved;
37060fee10Skettenis     EFI_FPSWA                       Fpswa;
38060fee10Skettenis } FPSWA_INTERFACE;
39060fee10Skettenis 
40060fee10Skettenis #endif
41