本文整理汇总了C++中Int32x32To64函数的典型用法代码示例。如果您正苦于以下问题:C++ Int32x32To64函数的具体用法?C++ Int32x32To64怎么用?C++ Int32x32To64使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Int32x32To64函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Int64ShraMod32
void Viewport3D::ApplyRotationMatrix(const MR_2DCoordinate & pSrc, MR_2DCoordinate & pDest) const
{
MR_3DCoordinate lPos;
lPos.mX = pSrc.mX - mPosition.mX;
lPos.mY = pSrc.mY - mPosition.mY;
pDest.mX = (MR_Int32) Int64ShraMod32(Int32x32To64(lPos.mX, mRotationMatrix[0][0]) + Int32x32To64(lPos.mY, mRotationMatrix[0][1]), MR_TRIGO_SHIFT);
pDest.mY = (MR_Int32) Int64ShraMod32(Int32x32To64(lPos.mX, mRotationMatrix[1][0]) + Int32x32To64(lPos.mY, mRotationMatrix[1][1]), MR_TRIGO_SHIFT);
}
示例2: HalSetProfileInterval
ULONG
HalSetProfileInterval (
IN ULONG Interval
)
/*++
Routine Description:
This routine sets the profile interrupt interval.
Arguments:
Interval - Supplies the desired profile interval in 100ns units.
Return Value:
The actual profile interval.
--*/
{
LARGE_INTEGER TempValue;
//
// If the specified profile interval is less that the minimum profile
// interval or greater than the maximum profile interval, then set the
// profile interval to the minimum or maximum as appropriate.
//
if (Interval < MINIMUM_PROFILE_INTERVAL) {
Interval = MINIMUM_PROFILE_INTERVAL;
} else if (Interval > MAXIMUM_PROFILE_INTERVAL) {
Interval = MAXIMUM_PROFILE_INTERVAL;
}
//
// First compute the profile count value and then back calculate the
// actual profile interval.
//
TempValue.QuadPart = Int32x32To64(HalpProfileCountRate, Interval);
TempValue.QuadPart += ROUND_VALUE;
TempValue = RtlExtendedLargeIntegerDivide(TempValue, ONE_SECOND, NULL);
TempValue.QuadPart = Int32x32To64(TempValue.LowPart, ONE_SECOND);
TempValue = RtlExtendedLargeIntegerDivide(TempValue, HalpProfileCountRate, NULL);
HalpProfileInterval = TempValue.LowPart;
return HalpProfileInterval;
}
示例3: filefind_index_write_FILETIME_helper
static int filefind_index_write_FILETIME_helper(lua_State* L, struct FileFindInfo* info) {
#if defined(WIN32)
return _filefind_push_FILETIME(L, &info->fd.ftLastWriteTime);
#else
return _filefind_push_FILETIME(L, Int32x32To64(info->attr.st_mtime, 10000000) + 116444736000000000);
#endif
}
示例4: TT_to_FILETIME
static void TT_to_FILETIME( time_t t, FILETIME& ft )
{
LONGLONG ll;
ll = Int32x32To64( t, 10000000 ) + 116444736000000000ll;
ft.dwLowDateTime = ( DWORD )ll;
ft.dwHighDateTime = ll >> 32;
}
示例5: UnixTimevalToFileTime
//after Microsoft KB167296
static void UnixTimevalToFileTime(struct timeval t, LPFILETIME pft)
{
LONGLONG ll;
ll = Int32x32To64(t.tv_sec, CSYNC_USEC_IN_SEC*10) + t.tv_usec*10 + CSYNC_SECONDS_SINCE_1601*CSYNC_USEC_IN_SEC*10;
pft->dwLowDateTime = (DWORD)ll;
pft->dwHighDateTime = ll >> 32;
}
示例6: UnixTimeToFileTime
void UnixTimeToFileTime(time_t t, LPFILETIME pft){
LONGLONG ll;
ll = Int32x32To64(t, 10000000) + 116444736000000000;
pft->dwLowDateTime = (DWORD)ll;
pft->dwHighDateTime = ll >> 32;
}
示例7: format_timestamp
static void format_timestamp(uint64_t seconds, int microseconds,
char *buffer, int length, char *date_separator,
char *date_time_separator, char *time_separator) {
ULONGLONG timestamp = 0;
ULONGLONG offset_to_1970 = 116444736000000000;
SYSTEMTIME st;
FILETIME ft, ft_local;
timestamp = Int32x32To64(seconds, 10000000) + offset_to_1970;
ft.dwHighDateTime = (DWORD)((timestamp >> 32) & 0xFFFFFFFF);
ft.dwLowDateTime = (DWORD)(timestamp & 0xFFFFFFFF);
FileTimeToLocalFileTime(&ft, &ft_local);
FileTimeToSystemTime(&ft_local, &st);
if (microseconds < 0) {
_snprintf(buffer, length, "%d%s%02d%s%02d%s%02d%s%02d%s%02d",
st.wYear, date_separator, st.wMonth, date_separator,
st.wDay, date_time_separator, st.wHour, time_separator,
st.wMinute, time_separator, st.wSecond);
} else {
_snprintf(buffer, length, "%d%s%02d%s%02d%s%02d%s%02d%s%02d.%06d",
st.wYear, date_separator, st.wMonth, date_separator,
st.wDay, date_time_separator, st.wHour, time_separator,
st.wMinute, time_separator, st.wSecond, microseconds);
}
}
示例8: ASSERT
bool CArchiverUNARJ::InspectArchiveGetWriteTime(FILETIME &FileTime)
{
if(!m_hInspectArchive){
ASSERT(!"Open an Archive First!!!\n");
return false;
}
//拡張版関数で時刻取得
if(ArchiverGetWriteTimeEx){
FILETIME TempTime;
if(!ArchiverGetWriteTimeEx(m_hInspectArchive,&TempTime))return false;
if(!LocalFileTimeToFileTime(&TempTime,&FileTime))return false;
return true;
}
//通常版関数で時刻取得
else if(ArchiverGetWriteTime){
DWORD UnixTime=ArchiverGetWriteTime(m_hInspectArchive);
if(-1==UnixTime){
return false;
}
//time_tからFileTimeへ変換
LONGLONG ll = Int32x32To64(UnixTime, 10000000) + 116444736000000000;
FileTime.dwLowDateTime = (DWORD) ll;
FileTime.dwHighDateTime = (DWORD)(ll >>32);
return true;
}
else{
示例9: phOsalNfc_Timer_Start
/* This starts the timer */
NFCSTATUS phOsalNfc_Timer_Start(uint32_t TimerId,
uint32_t dueTimeMsec,
ppCallBck_t pCallback,
void *pContext)
{
uint32_t uIndex;
LONGLONG DueTime;
uint32_t uWindow = (dueTimeMsec < 50) ? 0 : (dueTimeMsec / 4);
if (NULL == gpphOsalNfc_Context ||
PH_OSALNFC_TIMER_ID_INVALID == TimerId) {
return PHNFCSTVAL(CID_NFC_OSAL, NFCSTATUS_INVALID_PARAMETER);
}
uIndex = TimerId - PH_OSAL_TIMER_BASE_ADDRESS;
// Convert dueTimeMsec to relative filetime units (100ns)
DueTime = Int32x32To64(dueTimeMsec, -10000);
EnterCriticalSection(&gpphOsalNfc_Context->TimerLock);
SetThreadpoolTimer(gpphOsalNfc_Context->TimerList[uIndex].pTimer, (FILETIME*)&DueTime, 0, uWindow);
gpphOsalNfc_Context->TimerList[uIndex].pCallback = pCallback;
gpphOsalNfc_Context->TimerList[uIndex].pContext = pContext;
LeaveCriticalSection(&gpphOsalNfc_Context->TimerLock);
return NFCSTATUS_SUCCESS;
}
示例10: Int32x32To64
void CFileSystem::TimestampToFiletime(const time_t t, _FILETIME& pft)
{
LONGLONG ll;
ll = Int32x32To64(t, 10000000) + 116444736000000000;
pft.dwLowDateTime = (DWORD)ll;
pft.dwHighDateTime = ll >> 32;
}
示例11: sys_arch_mbox_fetch
u32_t
sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
{
LARGE_INTEGER LargeTimeout, PreWaitTime, PostWaitTime;
UINT64 TimeDiff;
NTSTATUS Status;
PVOID Message;
PLWIP_MESSAGE_CONTAINER Container;
PLIST_ENTRY Entry;
KIRQL OldIrql;
PVOID WaitObjects[] = {&mbox->Event, &TerminationEvent};
LargeTimeout.QuadPart = Int32x32To64(timeout, -10000);
KeQuerySystemTime(&PreWaitTime);
Status = KeWaitForMultipleObjects(2,
WaitObjects,
WaitAny,
Executive,
KernelMode,
FALSE,
timeout != 0 ? &LargeTimeout : NULL,
NULL);
if (Status == STATUS_WAIT_0)
{
KeAcquireSpinLock(&mbox->Lock, &OldIrql);
Entry = RemoveHeadList(&mbox->ListHead);
ASSERT(Entry);
if (IsListEmpty(&mbox->ListHead))
KeClearEvent(&mbox->Event);
KeReleaseSpinLock(&mbox->Lock, OldIrql);
Container = CONTAINING_RECORD(Entry, LWIP_MESSAGE_CONTAINER, ListEntry);
Message = Container->Message;
ExFreePool(Container);
if (msg)
*msg = Message;
KeQuerySystemTime(&PostWaitTime);
TimeDiff = PostWaitTime.QuadPart - PreWaitTime.QuadPart;
TimeDiff /= 10000;
return TimeDiff;
}
else if (Status == STATUS_WAIT_1)
{
/* DON'T remove ourselves from the thread list! */
PsTerminateSystemThread(STATUS_SUCCESS);
/* We should never get here! */
ASSERT(FALSE);
return 0;
}
return SYS_ARCH_TIMEOUT;
}
示例12: UnixTimeToFileTime
bool UnixTimeToFileTime(unsigned long mtime, LPFILETIME ft)
{
// Note that LONGLONG is a 64-bit value
LONGLONG ll = Int32x32To64(mtime, 10000000) + 116444736000000000;
ft->dwLowDateTime = (DWORD)ll;
ft->dwHighDateTime = ll >> 32;
return true;
}
示例13: Int32x32To64
void touchmind::util::TimeUtil::UnixTimeToFileTime(time_t t, FILETIME* fileTime)
{
LONGLONG ll;
ll = Int32x32To64(t, 10000000) + 116444736000000000;
fileTime->dwLowDateTime = (DWORD) ll;
fileTime->dwHighDateTime = ll >> 32;
}
示例14: UnixTimeToFileTime
FILETIME UnixTimeToFileTime(const time_t t)
{
FILETIME ft;
const LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000;
ft.dwLowDateTime = static_cast<DWORD>(ll);
ft.dwHighDateTime = ll >> 32;
return ft;
}
示例15: UnixTimeToFileTime
void UnixTimeToFileTime(const time_t t, LPFILETIME pft)
{
// Note that LONGLONG is a 64-bit value
LONGLONG ll;
ll = Int32x32To64(t, SECS_TO_100NS) + SECS_BETWEEN_EPOCHS * SECS_TO_100NS;
pft->dwLowDateTime = (DWORD)ll;
pft->dwHighDateTime = ll >> 32;
}