reactos/win32ss/gdi/eng/float.c
Hermès Bélusca-Maïto 65ce146169 Create a branch for working on csrss and co.
svn path=/branches/ros-csrss/; revision=57561
2012-10-14 13:04:31 +00:00

70 lines
1.4 KiB
C

/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Engine floating point functions
* FILE: subsys/win32k/eng/float.c
* PROGRAMER: David Welch
*/
/* INCLUDES *****************************************************************/
#include <win32k.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS *****************************************************************/
BOOL
APIENTRY
EngRestoreFloatingPointState(
IN VOID *Buffer)
{
NTSTATUS Status;
Status = KeRestoreFloatingPointState((PKFLOATING_SAVE)Buffer);
if (!NT_SUCCESS(Status))
{
return FALSE;
}
return TRUE;
}
ULONG
APIENTRY
EngSaveFloatingPointState(
OUT VOID *Buffer,
IN ULONG BufferSize)
{
KFLOATING_SAVE TempBuffer;
NTSTATUS Status;
if ((Buffer == NULL) || (BufferSize == 0))
{
/* Check for floating point support. */
Status = KeSaveFloatingPointState(&TempBuffer);
if (Status != STATUS_SUCCESS)
{
return(0);
}
KeRestoreFloatingPointState(&TempBuffer);
return(sizeof(KFLOATING_SAVE));
}
if (BufferSize < sizeof(KFLOATING_SAVE))
{
return(0);
}
Status = KeSaveFloatingPointState((PKFLOATING_SAVE)Buffer);
if (!NT_SUCCESS(Status))
{
return FALSE;
}
return TRUE;
}