/usr/include/cln/types.h is in libcln-dev 1.3.4-2+b1.
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 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | // Basic type definitions
#ifndef _CL_TYPES_H
#define _CL_TYPES_H
// CPU and other
#include "cln/config.h"
// char_bitsize, short_bitsize, long_bitsize, long_long_bitsize
#include "cln/intparam.h"
// Elementary arithmetic types of given width:
// 8 bits
#if (char_bitsize==8)
typedef signed char sint8;
typedef unsigned char uint8;
#else
#error "No 8 bit integer type?"
#endif
// 16 bits
#if (short_bitsize==16)
typedef short sint16;
typedef unsigned short uint16;
#else
#error "No 16 bit integer type?"
#endif
// 32 bits
#if (long_bitsize==32)
typedef long sint32;
typedef unsigned long uint32;
#elif (int_bitsize==32)
typedef int sint32;
typedef unsigned int uint32;
#else
#error "No 32 bit integer type?"
#endif
// 64 bits
#if (long_bitsize==64)
typedef long sint64;
typedef unsigned long uint64;
#undef HAVE_LONGLONG
#define HAVE_LONGLONG
#elif defined(HAVE_LONGLONG)
#if defined(long_long_bitsize) && (long_long_bitsize==64)
typedef long long sint64;
typedef unsigned long long uint64;
#else // unusable type
#undef HAVE_LONGLONG
#endif
#endif
#if defined(HAVE_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__mips64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__) || defined(__aarch64__))
// 64 bit registers in hardware
#define HAVE_FAST_LONGLONG
#endif
// Synonyms
#define intBsize 8
typedef sint8 sintB;
typedef uint8 uintB;
#define intWsize 16
typedef sint16 sintW;
typedef uint16 uintW;
#define intLsize 32
typedef sint32 sintL;
typedef uint32 uintL;
#ifdef HAVE_LONGLONG
#define intQsize 64
typedef sint64 sintQ;
typedef uint64 uintQ;
#endif
// Type for three values (0, +1, -1).
typedef int cl_signean;
#define signean_plus 1
#define signean_null 0
#define signean_minus -1
// Integer type used for counters.
// Constraint: sizeof(uintC) >= sizeof(uintL)
#if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__) || defined(__aarch64__) || defined(__mips64__)))
#define intCsize long_bitsize
typedef long sintC;
typedef unsigned long uintC;
#else
#define intCsize int_bitsize
typedef int sintC;
typedef unsigned int uintC;
#endif
// Integer type used for lfloat exponents.
// Constraint: sizeof(uintE) >= sizeof(uintC)
#if (defined(HAVE_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) || defined(__x86_64__) || defined(__i386__) || defined(__mips__) || defined(__rs6000__) || defined(__aarch64__)))
#define intEsize 64
typedef sint64 sintE;
typedef uint64 uintE;
#else
#define intEsize 32
typedef sint32 sintE;
typedef uint32 uintE;
#endif
// Integer type as large as a pointer.
// Assumption: sizeof(long) == sizeof(void*)
#define intPsize long_bitsize
typedef long sintP;
typedef unsigned long uintP;
// Integer type used for the value of a fixnum.
#define intVsize long_bitsize
typedef long sintV;
typedef unsigned long uintV;
// Numbers in the heap are stored as "digit" sequences.
// A digit is an unsigned int with intDsize bits.
// intDsize should be 8 or 16 or 32 or 64 and it should match mp_limb_t,
// if CLN is sitting on top of GMP.
#if defined(GMP_DEMANDS_UINTD_LONG_LONG)
#define HAVE_FAST_LONGLONG
#define intDsize long_long_bitsize
typedef long long sintD;
typedef unsigned long long uintD;
#elif defined(GMP_DEMANDS_UINTD_LONG)
#define intDsize long_bitsize
typedef long sintD;
typedef unsigned long uintD;
#elif defined(GMP_DEMANDS_UINTD_INT)
#define intDsize int_bitsize
typedef int sintD;
typedef unsigned int uintD;
#else // we are not using GMP, so just guess something reasonable
#if (defined(HAVE_FAST_LONGLONG) && (defined(__alpha__) || defined(__ia64__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__s390x__) || defined(__x86_64__) || defined(__aarch64__) || defined(__mips64__)))
#define intDsize 64
typedef sint64 sintD;
typedef uint64 uintD;
#else
#define intDsize 32
typedef sint32 sintD;
typedef uint32 uintD;
#endif
#endif
#if (intDsize==64)
#define intDDsize 128 // = 2*intDsize
#define log2_intDsize 6 // = log2(intDsize)
#elif (intDsize==32)
#define intDDsize 64 // = 2*intDsize
#define log2_intDsize 5 // = log2(intDsize)
#elif (intDsize==16)
#define intDDsize 32 // = 2*intDsize
#define log2_intDsize 4 // = log2(intDsize)
#elif (intDsize==8)
#define intDDsize 16 // = 2*intDsize
#define log2_intDsize 3 // = log2(intDsize)
#else
#error "What is intDsize again?"
#endif
// HAVE_DD means that there are unsigned ints with 2*intDsize bits.
#if (intDDsize <= (defined(HAVE_FAST_LONGLONG) ? 64 : 32))
#define HAVE_DD 1
#if (intDDsize==16)
typedef sint16 sintDD;
typedef uint16 uintDD;
#endif
#if (intDDsize==32)
typedef sint32 sintDD;
typedef uint32 uintDD;
#endif
#if (intDDsize==64)
typedef sint64 sintDD;
typedef uint64 uintDD;
#endif
#else
#define HAVE_DD 0
#endif
// Largest integer type which can be manipulated as efficiently as a pointer.
// This is normally the same as the hardware register size.
// Assumption: cl_word_size >= intPsize
#ifdef HAVE_FAST_LONGLONG
#define cl_word_size 64
#else
#define cl_word_size 32
#endif
#endif /* _CL_TYPES_H */
|