epoc32/include/stdapis/machine/_stdint.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*-
williamr@2
     2
 * Copyright (c) 2001, 2002 Mike Barcroft <mike@FreeBSD.org>
williamr@2
     3
 * Copyright (c) 2001 The NetBSD Foundation, Inc.
williamr@2
     4
 * All rights reserved.
williamr@2
     5
 *
williamr@2
     6
 * This code is derived from software contributed to The NetBSD Foundation
williamr@2
     7
 * by Klaus Klein.
williamr@2
     8
 *
williamr@2
     9
 * Redistribution and use in source and binary forms, with or without
williamr@2
    10
 * modification, are permitted provided that the following conditions
williamr@2
    11
 * are met:
williamr@2
    12
 * 1. Redistributions of source code must retain the above copyright
williamr@2
    13
 *    notice, this list of conditions and the following disclaimer.
williamr@2
    14
 * 2. Redistributions in binary form must reproduce the above copyright
williamr@2
    15
 *    notice, this list of conditions and the following disclaimer in the
williamr@2
    16
 *    documentation and/or other materials provided with the distribution.
williamr@2
    17
 * 4. Neither the name of The NetBSD Foundation nor the names of its
williamr@2
    18
 *    contributors may be used to endorse or promote products derived
williamr@2
    19
 *    from this software without specific prior written permission.
williamr@2
    20
 *
williamr@2
    21
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
williamr@2
    22
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
williamr@2
    23
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
williamr@2
    24
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
williamr@2
    25
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
williamr@2
    26
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
williamr@2
    27
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
williamr@2
    28
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
williamr@2
    29
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
williamr@2
    30
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
williamr@2
    31
 * POSSIBILITY OF SUCH DAMAGE.
williamr@2
    32
 *
williamr@2
    33
 * $FreeBSD: src/sys/i386/include/_stdint.h,v 1.2 2004/05/18 16:04:57 stefanf Exp $
williamr@2
    34
 */
williamr@2
    35
williamr@2
    36
#ifndef _MACHINE__STDINT_H_
williamr@2
    37
#define	_MACHINE__STDINT_H_
williamr@2
    38
williamr@2
    39
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
williamr@2
    40
williamr@2
    41
#define	INT8_C(c)		(c)
williamr@2
    42
#define	INT16_C(c)		(c)
williamr@2
    43
#define	INT32_C(c)		(c)
williamr@2
    44
#define	INT64_C(c)		(c ## LL)
williamr@2
    45
williamr@2
    46
#define	UINT8_C(c)		(c)
williamr@2
    47
#define	UINT16_C(c)		(c)
williamr@2
    48
#define	UINT32_C(c)		(c ## U)
williamr@2
    49
#define	UINT64_C(c)		(c ## ULL)
williamr@2
    50
williamr@2
    51
#define	INTMAX_C(c)		(c ## LL)
williamr@2
    52
#define	UINTMAX_C(c)		(c ## ULL)
williamr@2
    53
williamr@2
    54
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
williamr@2
    55
williamr@2
    56
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
williamr@2
    57
williamr@2
    58
/*
williamr@2
    59
 * ISO/IEC 9899:1999
williamr@2
    60
 * 7.18.2.1 Limits of exact-width integer types
williamr@2
    61
 */
williamr@2
    62
/* Minimum values of exact-width signed integer types. */
williamr@2
    63
#define	INT8_MIN	(-0x7f-1)
williamr@2
    64
#define	INT16_MIN	(-0x7fff-1)
williamr@2
    65
#define	INT32_MIN	(-0x7fffffff-1)
williamr@2
    66
#define	INT64_MIN	(-0x7fffffffffffffffLL-1)
williamr@2
    67
williamr@2
    68
/* Maximum values of exact-width signed integer types. */
williamr@2
    69
#define	INT8_MAX	0x7f
williamr@2
    70
#define	INT16_MAX	0x7fff
williamr@2
    71
#define	INT32_MAX	0x7fffffff
williamr@2
    72
#define	INT64_MAX	0x7fffffffffffffffLL
williamr@2
    73
williamr@2
    74
/* Maximum values of exact-width unsigned integer types. */
williamr@2
    75
#define	UINT8_MAX	0xff
williamr@2
    76
#define	UINT16_MAX	0xffff
williamr@2
    77
#define	UINT32_MAX	0xffffffffU
williamr@2
    78
#define	UINT64_MAX	0xffffffffffffffffULL
williamr@2
    79
williamr@2
    80
/*
williamr@2
    81
 * ISO/IEC 9899:1999
williamr@2
    82
 * 7.18.2.2  Limits of minimum-width integer types
williamr@2
    83
 */
williamr@2
    84
/* Minimum values of minimum-width signed integer types. */
williamr@2
    85
#define	INT_LEAST8_MIN	INT8_MIN
williamr@2
    86
#define	INT_LEAST16_MIN	INT16_MIN
williamr@2
    87
#define	INT_LEAST32_MIN	INT32_MIN
williamr@2
    88
#define	INT_LEAST64_MIN	INT64_MIN
williamr@2
    89
williamr@2
    90
/* Maximum values of minimum-width signed integer types. */
williamr@2
    91
#define	INT_LEAST8_MAX	INT8_MAX
williamr@2
    92
#define	INT_LEAST16_MAX	INT16_MAX
williamr@2
    93
#define	INT_LEAST32_MAX	INT32_MAX
williamr@2
    94
#define	INT_LEAST64_MAX	INT64_MAX
williamr@2
    95
williamr@2
    96
/* Maximum values of minimum-width unsigned integer types. */
williamr@2
    97
#define	UINT_LEAST8_MAX	 UINT8_MAX
williamr@2
    98
#define	UINT_LEAST16_MAX UINT16_MAX
williamr@2
    99
#define	UINT_LEAST32_MAX UINT32_MAX
williamr@2
   100
#define	UINT_LEAST64_MAX UINT64_MAX
williamr@2
   101
williamr@2
   102
/*
williamr@2
   103
 * ISO/IEC 9899:1999
williamr@2
   104
 * 7.18.2.3  Limits of fastest minimum-width integer types
williamr@2
   105
 */
williamr@2
   106
/* Minimum values of fastest minimum-width signed integer types. */
williamr@2
   107
#define	INT_FAST8_MIN	INT32_MIN
williamr@2
   108
#define	INT_FAST16_MIN	INT32_MIN
williamr@2
   109
#define	INT_FAST32_MIN	INT32_MIN
williamr@2
   110
#define	INT_FAST64_MIN	INT64_MIN
williamr@2
   111
williamr@2
   112
/* Maximum values of fastest minimum-width signed integer types. */
williamr@2
   113
#define	INT_FAST8_MAX	INT32_MAX
williamr@2
   114
#define	INT_FAST16_MAX	INT32_MAX
williamr@2
   115
#define	INT_FAST32_MAX	INT32_MAX
williamr@2
   116
#define	INT_FAST64_MAX	INT64_MAX
williamr@2
   117
williamr@2
   118
/* Maximum values of fastest minimum-width unsigned integer types. */
williamr@2
   119
#define	UINT_FAST8_MAX	UINT32_MAX
williamr@2
   120
#define	UINT_FAST16_MAX	UINT32_MAX
williamr@2
   121
#define	UINT_FAST32_MAX	UINT32_MAX
williamr@2
   122
#define	UINT_FAST64_MAX	UINT64_MAX
williamr@2
   123
williamr@2
   124
/*
williamr@2
   125
 * ISO/IEC 9899:1999
williamr@2
   126
 * 7.18.2.4  Limits of integer types capable of holding object pointers
williamr@2
   127
 */
williamr@2
   128
#define	INTPTR_MIN	INT32_MIN
williamr@2
   129
#define	INTPTR_MAX	INT32_MAX
williamr@2
   130
#define	UINTPTR_MAX	UINT32_MAX
williamr@2
   131
williamr@2
   132
/*
williamr@2
   133
 * ISO/IEC 9899:1999
williamr@2
   134
 * 7.18.2.5  Limits of greatest-width integer types
williamr@2
   135
 */
williamr@2
   136
#define	INTMAX_MIN	INT64_MIN
williamr@2
   137
#define	INTMAX_MAX	INT64_MAX
williamr@2
   138
#define	UINTMAX_MAX	UINT64_MAX
williamr@2
   139
williamr@2
   140
/*
williamr@2
   141
 * ISO/IEC 9899:1999
williamr@2
   142
 * 7.18.3  Limits of other integer types
williamr@2
   143
 */
williamr@2
   144
/* Limits of ptrdiff_t. */
williamr@2
   145
#define	PTRDIFF_MIN	INT32_MIN	
williamr@2
   146
#define	PTRDIFF_MAX	INT32_MAX
williamr@2
   147
williamr@2
   148
/* Limits of sig_atomic_t. */
williamr@2
   149
#define	SIG_ATOMIC_MIN	INT32_MIN
williamr@2
   150
#define	SIG_ATOMIC_MAX	INT32_MAX
williamr@2
   151
williamr@2
   152
/* Limit of size_t. */
williamr@2
   153
#define	SIZE_MAX	UINT32_MAX
williamr@2
   154
williamr@2
   155
#ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
williamr@2
   156
/* Limits of wchar_t. */
williamr@2
   157
#define	WCHAR_MIN	INT32_MIN
williamr@2
   158
#define	WCHAR_MAX	INT32_MAX
williamr@2
   159
#endif
williamr@2
   160
williamr@2
   161
/* Limits of wint_t. */
williamr@2
   162
#define	WINT_MIN	INT32_MIN
williamr@2
   163
#define	WINT_MAX	INT32_MAX
williamr@2
   164
williamr@2
   165
#endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
williamr@2
   166
williamr@2
   167
#endif /* !_MACHINE__STDINT_H_ */