Leaked source code of windows server 2003
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.
|
|
/***************************************************************************
* * Copyright (C) 2000-2000 Microsoft Corporation. All Rights Reserved. * * File: runtime.h * Content: New versions of C runtime functions. * History: * Date By Reason * ==== == ====== * 05/16/2000 jstokes Created * ***************************************************************************/
#ifndef __RUNTIME_H__
#define __RUNTIME_H__
// We have BYTE, WORD and DWORD, but no QWORD?
typedef unsigned __int64 QWORD, *LPQWORD;
// Bounderies of numeric types
#define MAX_CHAR ((CHAR)0x7F)
#define MIN_CHAR ((CHAR)-0x7F)
#define MAX_UCHAR ((UCHAR)0xFF)
#define MIN_UCHAR ((UCHAR)0)
#define MAX_SHORT ((SHORT)0x7FFF)
#define MIN_SHORT ((SHORT)-0x7FFF)
#define MAX_USHORT ((USHORT)0xFFFF)
#define MIN_USHORT ((USHORT)0)
#define MAX_INT ((INT)0x7FFFFFFF)
#define MIN_INT ((INT)-0x7FFFFFFF)
#define MAX_UINT ((UINT)0xFFFFFFFF)
#define MIN_UINT ((UINT)0)
#define MAX_LONG MAX_INT
#define MIN_LONG MIN_INT
#define MAX_ULONG MAX_UINT
#define MIN_ULONG MIN_UINT
#define MAX_INT64 ((INT64)0x7FFFFFFFFFFFFFFF)
#define MIN_INT64 ((INT64)-0x7FFFFFFFFFFFFFFF)
#define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFF)
#define MIN_UINT64 ((UINT64)0)
#define MAX_LONGLONG MAX_INT64
#define MIN_LONGLONG MIN_INT64
#define MAX_ULONGLONG MAX_UINT64
#define MIN_ULONGLONG MIN_UINT64
#define MAX_BYTE MAX_UCHAR
#define MIN_BYTE MIN_UCHAR
#define MAX_WORD MAX_USHORT
#define MIN_WORD MIN_USHORT
#define MAX_DWORD MAX_ULONG
#define MIN_DWORD MIN_ULONG
#define MAX_QWORD MAX_UINT64
#define MIN_QWORD MIN_UINT64
#define NUMERIC_CAST(val, type) \
((type)min(MAX_##type, max(MIN_##type, val)))
// Sundown
#ifdef WIN64
#pragma warning(disable:4311) // type cast truncation
#ifndef __midl
__inline unsigned long PtrDiffToUlong(__int64 n64) { return((unsigned long)n64); }
__inline long PtrDiffToLong(__int64 n64) { return((long)n64); }
__inline int PtrDiffToInt(__int64 n64) { return((int)n64); }
#endif // __midl
#pragma warning(3:4311) // type cast truncation
#else // WIN64
#define PtrDiffToUlong(n64) \
((unsigned long)(n64))
#define PtrDiffToLong(n64) \
((long)(n64))
#define PtrDiffToInt(n64) \
((int)(n64))
#endif // WIN64
#endif // __RUNTIME_H__
|