229 lines
6.8 KiB
C
229 lines
6.8 KiB
C
/*****************************************************************************/
|
|
/* SISCO SOFTWARE MODULE HEADER **********************************************/
|
|
/*****************************************************************************/
|
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
|
/* 2005 All Rights Reserved */
|
|
/* */
|
|
/* MODULE NAME : stdint.h */
|
|
/* PLATFORM : Microsoft Windows W32 platform */
|
|
/* PRODUCT(S) : general usage */
|
|
/* */
|
|
/* MODULE DESCRIPTION: */
|
|
/* Implementation of C99 standard header file "stdint.h" */
|
|
/* */
|
|
/* Implementation is based on ISO/IEC 9899:1999 TC2 Programming Language C */
|
|
/* */
|
|
/* MODIFICATION LOG: */
|
|
/* Date Who Rev Comments */
|
|
/* -------- --- --- ----------------------------------------------------- */
|
|
/* 06/07/06 RLH 02 Numerous features added, see stdtime.doc */
|
|
/* 02/25/06 RLH 01 Created */
|
|
/*****************************************************************************/
|
|
|
|
/* STDINT.H for Microsoft Windows */
|
|
|
|
|
|
#ifndef _STDTIME_STDINT_H_1BA49070_CC19_4880_8283_69F38C4F8F59_
|
|
#define _STDTIME_STDINT_H_1BA49070_CC19_4880_8283_69F38C4F8F59_
|
|
|
|
|
|
#include <limits.h>
|
|
#include <stddef.h>
|
|
#include <wchar.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* exact-wide integer types */
|
|
|
|
typedef __int8 int8_t;
|
|
typedef __int16 int16_t;
|
|
typedef __int32 int32_t;
|
|
typedef __int64 int64_t;
|
|
|
|
typedef unsigned __int8 uint8_t;
|
|
typedef unsigned __int16 uint16_t;
|
|
typedef unsigned __int32 uint32_t;
|
|
typedef unsigned __int64 uint64_t;
|
|
|
|
/* minimum-wide integer types */
|
|
|
|
typedef __int8 int_least8_t;
|
|
typedef __int16 int_least16_t;
|
|
typedef __int32 int_least32_t;
|
|
typedef __int64 int_least64_t;
|
|
|
|
typedef unsigned __int8 uint_least8_t;
|
|
typedef unsigned __int16 uint_least16_t;
|
|
typedef unsigned __int32 uint_least32_t;
|
|
typedef unsigned __int64 uint_least64_t;
|
|
|
|
/* fastest minimum-wide integer types */
|
|
|
|
typedef __int8 int_fast8_t;
|
|
typedef __int16 int_fast16_t;
|
|
typedef __int32 int_fast32_t;
|
|
typedef __int64 int_fast64_t;
|
|
|
|
typedef unsigned __int8 uint_fast8_t;
|
|
typedef unsigned __int16 uint_fast16_t;
|
|
typedef unsigned __int32 uint_fast32_t;
|
|
typedef unsigned __int64 uint_fast64_t;
|
|
|
|
/* integer types capable of holding object pointers */
|
|
|
|
/* intptr_t, uintptr_t : see stddef.h */
|
|
|
|
/* greatest-width integer types */
|
|
|
|
typedef __int64 intmax_t;
|
|
typedef unsigned __int64 uintmax_t;
|
|
|
|
|
|
/* macros for limits of exact-width integer types */
|
|
/* only define in C++ if user-requested per C99 standard */
|
|
|
|
#if (!defined(__cplusplus)) || defined(__STDC_LIMIT_MACROS)
|
|
|
|
/* fundamental limits : see limits.h */
|
|
|
|
#define INT8_MIN ((int8_t)(SCHAR_MIN))
|
|
#define INT8_MAX ((int8_t)(SCHAR_MAX))
|
|
#define UINT8_MAX ((uint8_t)(UCHAR_MAX))
|
|
|
|
#define INT16_MIN ((int16_t)(SHRT_MIN))
|
|
#define INT16_MAX ((int16_t)(SHRT_MAX))
|
|
#define UINT16_MAX ((uint16_t)(USHRT_MAX))
|
|
|
|
#define INT32_MIN ((int32_t)(INT_MIN))
|
|
#define INT32_MAX ((int32_t)(INT_MAX))
|
|
#define UINT32_MAX ((uint32_t)(UINT_MAX))
|
|
|
|
#define INT64_MIN ((int64_t)(_I64_MIN))
|
|
#define INT64_MAX ((int64_t)(_I64_MAX))
|
|
#define UINT64_MAX ((uint64_t)(_UI64_MAX))
|
|
|
|
/* limits of minimum-width integer types */
|
|
|
|
#define INT_LEAST8_MIN INT8_MIN
|
|
#define INT_LEAST8_MAX INT8_MAX
|
|
#define UINT_LEAST8_MAX UINT8_MAX
|
|
|
|
#define INT_LEAST16_MIN INT16_MIN
|
|
#define INT_LEAST16_MAX INT16_MAX
|
|
#define UINT_LEAST16_MAX UINT16_MAX
|
|
|
|
#define INT_LEAST32_MIN INT32_MIN
|
|
#define INT_LEAST32_MAX INT32_MAX
|
|
#define UINT_LEAST32_MAX UINT32_MAX
|
|
|
|
#define INT_LEAST64_MIN INT64_MIN
|
|
#define INT_LEAST64_MAX INT64_MAX
|
|
#define UINT_LEAST64_MAX UINT64_MAX
|
|
|
|
/* limits of fastest minimum-width integer types */
|
|
|
|
#define INT_FAST8_MIN INT8_MIN
|
|
#define INT_FAST8_MAX INT8_MAX
|
|
#define UINT_FAST8_MAX UINT8_MAX
|
|
|
|
#define INT_FAST16_MIN INT16_MIN
|
|
#define INT_FAST16_MAX INT16_MAX
|
|
#define UINT_FAST16_MAX UINT16_MAX
|
|
|
|
#define INT_FAST32_MIN INT32_MIN
|
|
#define INT_FAST32_MAX INT32_MAX
|
|
#define UINT_FAST32_MAX UINT32_MAX
|
|
|
|
#define INT_FAST64_MIN INT64_MIN
|
|
#define INT_FAST64_MAX INT64_MAX
|
|
#define UINT_FAST64_MAX UINT64_MAX
|
|
|
|
/* limits of greatest-width integer types */
|
|
|
|
#define INTMAX_MIN INT64_MIN
|
|
#define INTMAX_MAX INT64_MAX
|
|
#define UINTMAX_MAX UINT64_MAX
|
|
|
|
/* limits of other integer types */
|
|
|
|
#ifndef PTRDIFF_MIN
|
|
#ifdef _WIN64
|
|
#define PTRDIFF_MIN INT64_MIN
|
|
#else
|
|
#define PTRDIFF_MIN INT32_MIN
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef PTRDIFF_MAX
|
|
#ifdef _WIN64
|
|
#define PTRDIFF_MAX INT64_MAX
|
|
#else
|
|
#define PTRDIFF_MAX INT32_MAX
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef SIG_ATOMIC_MIN
|
|
#define SIG_ATOMIC_MIN INT32_MIN
|
|
#endif
|
|
|
|
#ifndef SIG_ATOMIC_MAX
|
|
#define SIG_ATOMIC_MAX INT32_MAX
|
|
#endif
|
|
|
|
#ifndef SIZE_MAX
|
|
#ifdef _WIN64
|
|
#define SIZE_MAX UINT64_MAX
|
|
#else
|
|
#define SIZE_MAX UINT32_MAX
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef WCHAR_MIN
|
|
#define WCHAR_MIN ((wchar_t)(0))
|
|
#endif
|
|
|
|
#ifndef WCHAR_MAX
|
|
#define WCHAR_MAX ((wchar_t)(USHRT_MAX))
|
|
#endif
|
|
|
|
#ifndef WINT_MIN
|
|
#define WINT_MIN ((wint_t)(0))
|
|
#endif
|
|
|
|
#ifndef WINT_MAX
|
|
#define WINT_MAX ((wint_t)(USHRT_MAX))
|
|
#endif
|
|
|
|
#endif /* (!defined(__cplusplus)) || defined(__STDC_LIMIT_MACROS) */
|
|
|
|
|
|
/* macros for minimum-width integer constants */
|
|
/* only define in C++ if user-requested per C99 standard */
|
|
|
|
#if (!defined(__cplusplus)) || defined(__STDC_CONSTANT_MACROS)
|
|
|
|
#define INT8_C(x) (int8_t)(x)
|
|
#define INT16_C(x) (int16_t)(x)
|
|
#define INT32_C(x) (int32_t)(x)
|
|
#define INT64_C(x) (int64_t)(x##i64)
|
|
|
|
#define UINT8_C(x) (uint8_t)(x##u)
|
|
#define UINT16_C(x) (uint16_t)(x##u)
|
|
#define UINT32_C(x) (uint32_t)(x##u)
|
|
#define UINT64_C(x) (uint64_t)(x##ui64)
|
|
|
|
#define INTMAX_C(x) INT64_C(x)
|
|
#define UINTMAX_C(x) UINT64_C(x)
|
|
|
|
#endif /* (!defined(__cplusplus)) || defined(__STDC_CONSTANT_MACROS) */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _STDTIME_STDINT_H_1BA49070_CC19_4880_8283_69F38C4F8F59_ */
|
|
|