Tor
0.4.9.2-alpha-dev
Toggle main menu visibility
Main Page
Related Pages
Modules
Data Structures
Data Structures
Data Structure Index
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
b
c
d
f
g
h
l
m
n
o
p
r
s
v
Enumerations
a
b
c
d
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerator
a
b
c
d
e
g
h
i
m
n
o
p
q
r
s
t
v
w
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
lib
cc
torint.h
Go to the documentation of this file.
1
/* Copyright (c) 2003, Roger Dingledine
2
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
3
* Copyright (c) 2007-2021, The Tor Project, Inc. */
4
/* See LICENSE for licensing information */
5
6
/**
7
* \file torint.h
8
*
9
* \brief Integer definitions used throughout Tor.
10
**/
11
12
#ifndef TOR_TORINT_H
13
#define TOR_TORINT_H
14
15
#include "orconfig.h"
16
17
#include <stdint.h>
18
#include <stdbool.h>
19
#include <limits.h>
20
21
#ifdef HAVE_SYS_TYPES_H
22
#include <sys/types.h>
23
#endif
24
#ifdef HAVE_SYS_LIMITS_H
25
#include <sys/limits.h>
26
#endif
27
28
#ifndef SIZE_MAX
29
#if SIZEOF_SIZE_T == 8
30
#define SIZE_MAX UINT64_MAX
31
#elif SIZEOF_SIZE_T == 4
32
#define SIZE_MAX UINT32_MAX
33
#else
34
#error "Can't define SIZE_MAX"
35
#endif
/* SIZEOF_SIZE_T == 8 || ... */
36
#endif
/* !defined(SIZE_MAX) */
37
38
#ifndef HAVE_SSIZE_T
39
#if SIZEOF_SIZE_T == 8
40
typedef
int64_t ssize_t;
41
#elif SIZEOF_SIZE_T == 4
42
typedef
int32_t ssize_t;
43
#else
44
#error "Can't define ssize_t."
45
#endif
/* SIZEOF_SIZE_T == 8 || ... */
46
#endif
/* !defined(HAVE_SSIZE_T) */
47
48
/* This assumes a sane (2's-complement) representation. But if you
49
* aren't 2's complement, and you don't define LONG_MAX, then you're so
50
* bizarre that I want nothing to do with you. */
51
#ifndef USING_TWOS_COMPLEMENT
52
#error "Your platform doesn't use 2's complement arithmetic."
53
#endif
54
55
#ifndef TIME_MAX
56
57
#if (SIZEOF_TIME_T == SIZEOF_INT)
58
#define TIME_MAX ((time_t)INT_MAX)
59
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
60
#define TIME_MAX ((time_t)LONG_MAX)
61
#elif (SIZEOF_TIME_T == 8)
62
#define TIME_MAX ((time_t)INT64_MAX)
63
#else
64
#error "Can't define TIME_MAX"
65
#endif
/* (SIZEOF_TIME_T == SIZEOF_INT) || ... */
66
67
#endif
/* !defined(TIME_MAX) */
68
69
#ifndef TIME_MIN
70
71
#if (SIZEOF_TIME_T == SIZEOF_INT)
72
#define TIME_MIN ((time_t)INT_MIN)
73
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
74
#define TIME_MIN ((time_t)LONG_MIN)
75
#elif (SIZEOF_TIME_T == 8)
76
#define TIME_MIN ((time_t)INT64_MIN)
77
#else
78
#error "Can't define TIME_MIN"
79
#endif
/* (SIZEOF_TIME_T == SIZEOF_INT) || ... */
80
81
#endif
/* !defined(TIME_MIN) */
82
83
#ifndef SIZE_MAX
84
#if (SIZEOF_SIZE_T == 4)
85
#define SIZE_MAX UINT32_MAX
86
#elif (SIZEOF_SIZE_T == 8)
87
#define SIZE_MAX UINT64_MAX
88
#else
89
#error "Can't define SIZE_MAX"
90
#endif
/* (SIZEOF_SIZE_T == 4) || ... */
91
#endif
/* !defined(SIZE_MAX) */
92
93
#ifdef _WIN32
94
# ifdef _WIN64
95
# define TOR_PRIuSZ PRIu64
96
# else
97
# define TOR_PRIuSZ PRIu32
98
# endif
99
#else
/* !defined(_WIN32) */
100
# define TOR_PRIuSZ "zu"
101
#endif
/* defined(_WIN32) */
102
103
#ifdef _WIN32
104
# ifdef _WIN64
105
# define TOR_PRIdSZ PRId64
106
# else
107
# define TOR_PRIdSZ PRId32
108
# endif
109
#else
/* !defined(_WIN32) */
110
# define TOR_PRIdSZ "zd"
111
#endif
/* defined(_WIN32) */
112
113
#ifndef SSIZE_MAX
114
#if (SIZEOF_SIZE_T == 4)
115
#define SSIZE_MAX INT32_MAX
116
#elif (SIZEOF_SIZE_T == 8)
117
#define SSIZE_MAX INT64_MAX
118
#else
119
#error "Can't define SSIZE_MAX"
120
#endif
/* (SIZEOF_SIZE_T == 4) || ... */
121
#endif
/* !defined(SSIZE_MAX) */
122
123
/** Any ssize_t larger than this amount is likely to be an underflow. */
124
#define SSIZE_T_CEILING ((ssize_t)(SSIZE_MAX-16))
125
/** Any size_t larger than this amount is likely to be an underflow. */
126
#define SIZE_T_CEILING ((size_t)(SSIZE_MAX-16))
127
128
#if SIZEOF_INT > SIZEOF_VOID_P
129
#error "sizeof(int) > sizeof(void *) - Can't build Tor here."
130
#endif
131
132
#if SIZEOF_UNSIGNED_INT > SIZEOF_VOID_P
133
#error "sizeof(unsigned int) > sizeof(void *) - Can't build Tor here."
134
#endif
135
136
#endif
/* !defined(TOR_TORINT_H) */
Generated by
1.9.4