/usr/include/sc/util/misc/scint.h is in libsc-dev 2.3.1-16.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | // This provides C99-like standard integer types. It is based on boost.org
// code which has been modified for inclusion in the SC Toolkit.
// (C) Copyright boost.org 1999. Permission to copy, use, modify, sell
// and distribute this software is granted provided this copyright
// notice appears in all copies. This software is provided "as is" without
// express or implied warranty, and with no claim as to its suitability for
// any purpose.
#ifndef util_misc_scint_h
#define util_misc_scint_h
#include <scconfig.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
namespace sc {
typedef int8_t sc_int8_t;
typedef int_least8_t sc_int_least8_t;
typedef int_fast8_t sc_int_fast8_t;
typedef uint8_t sc_uint8_t;
typedef uint_least8_t sc_uint_least8_t;
typedef uint_fast8_t sc_uint_fast8_t;
typedef int16_t sc_int16_t;
typedef int_least16_t sc_int_least16_t;
typedef int_fast16_t sc_int_fast16_t;
typedef uint16_t sc_uint16_t;
typedef uint_least16_t sc_uint_least16_t;
typedef uint_fast16_t sc_uint_fast16_t;
typedef int32_t sc_int32_t;
typedef int_least32_t sc_int_least32_t;
typedef int_fast32_t sc_int_fast32_t;
typedef uint32_t sc_uint32_t;
typedef uint_least32_t sc_uint_least32_t;
typedef uint_fast32_t sc_uint_fast32_t;
typedef intmax_t sc_intmax_t;
typedef uintmax_t sc_uintmax_t;
typedef int64_t sc_int64_t;
typedef int_least64_t sc_int_least64_t;
typedef int_fast64_t sc_int_fast64_t;
typedef uint64_t sc_uint64_t;
typedef uint_least64_t sc_uint_least64_t;
typedef uint_fast64_t sc_uint_fast64_t;
}
#else
// This is not a complete implementation of the 1999 C Standard stdint.h
// header; it doesn't supply various macros which are not advisable for use in
// C++ programs.
#include <limits.h> // implementation artifact; not part of interface
namespace sc {
// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
// platforms. For other systems, they will have to be hand tailored.
// Because the fast types are assumed to be the same as the undecorated types,
// it may be possible to hand tailor a more efficient implementation.
// 8-bit types -------------------------------------------------------------//
# if UCHAR_MAX == 0xff
typedef signed char sc_int8_t;
typedef signed char sc_int_least8_t;
typedef signed char sc_int_fast8_t;
typedef unsigned char sc_uint8_t;
typedef unsigned char sc_uint_least8_t;
typedef unsigned char sc_uint_fast8_t;
# else
# error defaults not correct; you must hand modify scint.h
# endif
// 16-bit types ------------------------------------------------------------//
# if USHRT_MAX == 0xffff
typedef short sc_int16_t;
typedef short sc_int_least16_t;
typedef short sc_int_fast16_t;
typedef unsigned short sc_uint16_t;
typedef unsigned short sc_uint_least16_t;
typedef unsigned short sc_uint_fast16_t;
# else
# error defaults not correct; you must hand modify scint.h
# endif
// 32-bit types ------------------------------------------------------------//
# if UINT_MAX == 0xffffffff
typedef int sc_int32_t;
typedef int sc_int_least32_t;
typedef int sc_int_fast32_t;
typedef unsigned int sc_uint32_t;
typedef unsigned int sc_uint_least32_t;
typedef unsigned int sc_uint_fast32_t;
# elif ULONG_MAX == 0xffffffff
typedef long sc_int32_t;
typedef long sc_int_least32_t;
typedef long sc_int_fast32_t;
typedef unsigned long sc_uint32_t;
typedef unsigned long sc_uint_least32_t;
typedef unsigned long sc_uint_fast32_t;
# else
# error defaults not correct; you must hand modify scint.h
# endif
// 64-bit types + intmax_t and uintmax_t -----------------------------------//
#if defined(ULONGLONG_MAX) && !defined(ULLONG_MAX)
# define ULLONG_MAX ULONGLONG_MAX
#endif
# ifdef ULLONG_MAX
//# if ULLONG_MAX == 18446744073709551615 // 2**64 - 1
# if ULONGLONG_MAX == (0xffffffffffffffffuLL) // uLL reqd for xlC
typedef long long sc_intmax_t;
typedef unsigned long long sc_uintmax_t;
typedef long long sc_int64_t;
typedef long long sc_int_least64_t;
typedef long long sc_int_fast64_t;
typedef unsigned long long sc_uint64_t;
typedef unsigned long long sc_uint_least64_t;
typedef unsigned long long sc_uint_fast64_t;
# else
# error defaults not correct; you must hand modify scint.h
# endif
# elif ULONG_MAX != 0xffffffff
# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
typedef long sc_intmax_t;
typedef unsigned long sc_uintmax_t;
typedef long sc_int64_t;
typedef long sc_int_least64_t;
typedef long sc_int_fast64_t;
typedef unsigned long sc_uint64_t;
typedef unsigned long sc_uint_least64_t;
typedef unsigned long sc_uint_fast64_t;
# else
# error defaults not correct; you must hand modify scint.h
# endif
# else // assume no 64-bit integers
# error 64 bit integer types are required
typedef sc_int32_t sc_intmax_t;
typedef sc_uint32_t sc_uintmax_t;
# endif
}
#endif
#endif
|