186588Speter/* $FreeBSD$ */
286588Speter#ifndef _EFI_FPSWA_H
386588Speter#define _EFI_FPSWA_H
486588Speter
596893Smarcel/*
696893Smarcel * EFI FP SWA Driver (Floating Point Software Assist)
796893Smarcel */
886588Speter
986588Speter#define EFI_INTEL_FPSWA \
10294981Ssmh    { 0xc41b6531, 0x97b9, 0x11d3, {0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1186588Speter
1286588SpeterINTERFACE_DECL(_FPSWA_INTERFACE);
1386588Speter
1486588Spetertypedef struct _FPSWA_RET {
1586588Speter    UINT64                          status;
1686588Speter    UINT64                          err1;
1786588Speter    UINT64                          err2;
1886588Speter    UINT64                          err3;
1986588Speter} FPSWA_RET;
2086588Speter
2186588Spetertypedef
2286588SpeterFPSWA_RET
2386588Speter(EFIAPI *EFI_FPSWA) (
2486588Speter    IN UINTN                        TrapType,
2586588Speter    IN OUT VOID                     *Bundle,
2686588Speter    IN OUT UINT64                   *pipsr,
2786588Speter    IN OUT UINT64                   *pfsr,
2886588Speter    IN OUT UINT64                   *pisr,
2986588Speter    IN OUT UINT64                   *ppreds,
3086588Speter    IN OUT UINT64                   *pifs,
3186588Speter    IN OUT VOID                     *fp_state
3286588Speter    );
3386588Speter
3486588Spetertypedef struct _FPSWA_INTERFACE {
3586588Speter    UINT32                          Revision;
3686588Speter    UINT32                          Reserved;
3786588Speter    EFI_FPSWA                       Fpswa;
3886588Speter} FPSWA_INTERFACE;
3986588Speter
4086588Speter#endif
41