18#define _toui (unsigned __int64)
20#error "64 bit integers not supported"
29#if defined(LARGEINT_PROTOS) || defined(__COMPILING_LARGEINT)
31#ifndef __COMPILING_LARGEINT
56#define LargeIntegerAdd(a,b) (LARGE_INTEGER)(_toi(a) + _toi(b))
57#define LargeIntegerSubtract(a,b) (LARGE_INTEGER)(_toi(a) - _toi(b))
58#define LargeIntegerRightShift(i,n) (LARGE_INTEGER)(_toi(i) >> (n))
59#define LargeIntegerArithmeticShift LargeIntegerRightShift
60#define LargeIntegerLeftShift(i,n) (LARGE_INTEGER)(_toi(i) << (n))
61#define LargeIntegerNegate(i) (LARGE_INTEGER)(- _toi(i))
62#define EnlargedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
63#define EnlargedUnsignedMultiply(a,b) (LARGE_INTEGER)(_toui(a) * _toui(b))
64#define ExtendedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
66#define LargeIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
67#define ConvertLongToLargeInteger(l) (LARGE_INTEGER)(_toi(l))
68#define ConvertUlongToLargeInteger(ul) (LARGE_INTEGER)(_toui(ul))
72#ifndef __COMPILING_LARGEINT
80#define LargeIntegerAnd(dest, src, m) \
82 dest._STRUCT_NAME(u.)LowPart = s._STRUCT_NAME(u.)LowPart & m._STRUCT_NAME(u.)LowPart; \
83 dest._STRUCT_NAME(u.)HighPart = s._STRUCT_NAME(u.)HighPart & m._STRUCT_NAME(u.)HighPart; \
87#define LargeIntegerGreaterThan(a,b) (_toi(a) > _toi(b))
88#define LargeIntegerGreaterThanOrEqual(a,b) (_toi(a) >= _toi(b))
89#define LargeIntegerEqualTo(a,b) (_toi(a) == _toi(b))
90#define LargeIntegerNotEqualTo(a,b) (_toi(a) != _toi(b))
91#define LargeIntegerLessThan(a,b) (_toi(a) < _toi(b))
92#define LargeIntegerLessThanOrEqualTo(a,b) (_toi(a) <= _toi(b))
93#define LargeIntegerGreaterThanZero(a) (_toi(a) > 0)
94#define LargeIntegerGreaterOrEqualToZero(a) ((a)._STRUCT_NAME(u.)HighPart > 0)
95#define LargeIntegerEqualToZero(a) !((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart)
96#define LargeIntegerNotEqualToZero(a) ((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart)
97#define LargeIntegerLessThanZero(a) ((a)._STRUCT_NAME(u.)HighPart < 0)
98#define LargeIntegerLessOrEqualToZero(a) (_toi(a) <= 0)
100#ifndef __COMPILING_LARGEINT
#define EnlargedUnsignedMultiply(a, b)
LARGE_INTEGER WINAPI ExtendedLargeIntegerDivide(LARGE_INTEGER, ULONG, PULONG)
#define LargeIntegerAdd(a, b)
#define LargeIntegerMultiply(a, b)
#define LargeIntegerSubtract(a, b)
LARGE_INTEGER WINAPI ExtendedMagicDivide(LARGE_INTEGER, LARGE_INTEGER, int)
ULONG WINAPI EnlargedUnsignedDivide(ULARGE_INTEGER, ULONG, PULONG)
#define LargeIntegerNegate(i)
#define ConvertLongToLargeInteger(l)
#define ExtendedIntegerMultiply(a, b)
#define EnlargedIntegerMultiply(a, b)
#define LargeIntegerArithmeticShift
#define ConvertUlongToLargeInteger(ul)
LARGE_INTEGER WINAPI LargeIntegerDivide(LARGE_INTEGER, LARGE_INTEGER, PLARGE_INTEGER)