199767f8919635c4928607450d9e0abb932109ceToomas Soome/* $FreeBSD$ */
199767f8919635c4928607450d9e0abb932109ceToomas Soome#ifndef _EFI_FPSWA_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define _EFI_FPSWA_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/*
199767f8919635c4928607450d9e0abb932109ceToomas Soome * EFI FP SWA Driver (Floating Point Software Assist)
199767f8919635c4928607450d9e0abb932109ceToomas Soome */
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_INTEL_FPSWA \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0xc41b6531, 0x97b9, 0x11d3, {0x9a, 0x29, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_FPSWA_INTERFACE);
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _FPSWA_RET {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 status;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 err1;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 err2;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 err3;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} FPSWA_RET;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeFPSWA_RET
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_FPSWA) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN TrapType,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT VOID *Bundle,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *pipsr,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *pfsr,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *pisr,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *ppreds,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *pifs,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT VOID *fp_state
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _FPSWA_INTERFACE {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Revision;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_FPSWA Fpswa;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} FPSWA_INTERFACE;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif