You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.8 KiB
72 lines
1.8 KiB
/***
|
|
*convert.cpp - RTC support
|
|
*
|
|
* Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
|
|
*
|
|
*
|
|
*Revision History:
|
|
* 07-28-98 JWM Module incorporated into CRTs (from KFrei)
|
|
* 11-03-98 KBF Moved pragma optimize to rtcpriv header
|
|
* 05-11-99 KBF Error if RTC support define not enabled
|
|
*
|
|
****/
|
|
|
|
#ifndef _RTC
|
|
#error RunTime Check support not enabled!
|
|
#endif
|
|
|
|
#include "rtcpriv.h"
|
|
|
|
char __fastcall
|
|
_RTC_Check_2_to_1(short big)
|
|
{
|
|
unsigned bits = big & 0xFF00;
|
|
if (bits && bits != 0xFF00)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (char)big;
|
|
}
|
|
|
|
char __fastcall
|
|
_RTC_Check_4_to_1(int big)
|
|
{
|
|
unsigned int bits = big & 0xFFFFFF00;
|
|
if (bits && bits != 0xFFFFFF00)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (char)big;
|
|
}
|
|
|
|
char __fastcall
|
|
_RTC_Check_8_to_1(__int64 big)
|
|
{
|
|
unsigned __int64 bits = big & 0xFFFFFFFFFFFFFF00;
|
|
if (bits && bits != 0xFFFFFFFFFFFFFF00)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (char)big;
|
|
}
|
|
|
|
short __fastcall
|
|
_RTC_Check_4_to_2(int big)
|
|
{
|
|
unsigned int bits = big & 0xFFFF0000;
|
|
if (bits && bits != 0xFFFF0000)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (short)big;
|
|
}
|
|
|
|
short __fastcall
|
|
_RTC_Check_8_to_2(__int64 big)
|
|
{
|
|
unsigned __int64 bits = big & 0xFFFFFFFFFFFF0000;
|
|
if (bits && bits != 0xFFFFFFFFFFFF0000)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (short)big;
|
|
}
|
|
|
|
int __fastcall
|
|
_RTC_Check_8_to_4(__int64 big)
|
|
{
|
|
unsigned __int64 bits = big & 0xFFFFFFFF00000000;
|
|
if (bits && bits != 0xFFFFFFFF00000000)
|
|
_RTC_Failure(_ReturnAddress(), _RTC_CVRT_LOSS_INFO);
|
|
return (int)big;
|
|
}
|