mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Replace usage of INLINE with inline
This patch was generated using; sed -i -e "s/\bINLINE\b/inline/" src/*/*.[ch] src/*/*/*.[ch]
This commit is contained in:
parent
9a179ff751
commit
824a6a2a90
@ -73,13 +73,13 @@ typedef struct tor_addr_port_t
|
||||
|
||||
#define TOR_ADDR_NULL {AF_UNSPEC, {0}}
|
||||
|
||||
static INLINE const struct in6_addr *tor_addr_to_in6(const tor_addr_t *a);
|
||||
static INLINE uint32_t tor_addr_to_ipv4n(const tor_addr_t *a);
|
||||
static INLINE uint32_t tor_addr_to_ipv4h(const tor_addr_t *a);
|
||||
static INLINE uint32_t tor_addr_to_mapped_ipv4h(const tor_addr_t *a);
|
||||
static INLINE sa_family_t tor_addr_family(const tor_addr_t *a);
|
||||
static INLINE const struct in_addr *tor_addr_to_in(const tor_addr_t *a);
|
||||
static INLINE int tor_addr_eq_ipv4h(const tor_addr_t *a, uint32_t u);
|
||||
static inline const struct in6_addr *tor_addr_to_in6(const tor_addr_t *a);
|
||||
static inline uint32_t tor_addr_to_ipv4n(const tor_addr_t *a);
|
||||
static inline uint32_t tor_addr_to_ipv4h(const tor_addr_t *a);
|
||||
static inline uint32_t tor_addr_to_mapped_ipv4h(const tor_addr_t *a);
|
||||
static inline sa_family_t tor_addr_family(const tor_addr_t *a);
|
||||
static inline const struct in_addr *tor_addr_to_in(const tor_addr_t *a);
|
||||
static inline int tor_addr_eq_ipv4h(const tor_addr_t *a, uint32_t u);
|
||||
|
||||
socklen_t tor_addr_to_sockaddr(const tor_addr_t *a, uint16_t port,
|
||||
struct sockaddr *sa_out, socklen_t len);
|
||||
@ -91,7 +91,7 @@ char *tor_sockaddr_to_str(const struct sockaddr *sa);
|
||||
|
||||
/** Return an in6_addr* equivalent to <b>a</b>, or NULL if <b>a</b> is not
|
||||
* an IPv6 address. */
|
||||
static INLINE const struct in6_addr *
|
||||
static inline const struct in6_addr *
|
||||
tor_addr_to_in6(const tor_addr_t *a)
|
||||
{
|
||||
return a->family == AF_INET6 ? &a->addr.in6_addr : NULL;
|
||||
@ -115,14 +115,14 @@ tor_addr_to_in6(const tor_addr_t *a)
|
||||
|
||||
/** Return an IPv4 address in network order for <b>a</b>, or 0 if
|
||||
* <b>a</b> is not an IPv4 address. */
|
||||
static INLINE uint32_t
|
||||
static inline uint32_t
|
||||
tor_addr_to_ipv4n(const tor_addr_t *a)
|
||||
{
|
||||
return a->family == AF_INET ? a->addr.in_addr.s_addr : 0;
|
||||
}
|
||||
/** Return an IPv4 address in host order for <b>a</b>, or 0 if
|
||||
* <b>a</b> is not an IPv4 address. */
|
||||
static INLINE uint32_t
|
||||
static inline uint32_t
|
||||
tor_addr_to_ipv4h(const tor_addr_t *a)
|
||||
{
|
||||
return ntohl(tor_addr_to_ipv4n(a));
|
||||
@ -131,7 +131,7 @@ tor_addr_to_ipv4h(const tor_addr_t *a)
|
||||
* 0 if <b>a</b> is not an IPv6 address.
|
||||
*
|
||||
* (Does not check whether the address is really a mapped address */
|
||||
static INLINE uint32_t
|
||||
static inline uint32_t
|
||||
tor_addr_to_mapped_ipv4h(const tor_addr_t *a)
|
||||
{
|
||||
if (a->family == AF_INET6) {
|
||||
@ -149,21 +149,21 @@ tor_addr_to_mapped_ipv4h(const tor_addr_t *a)
|
||||
}
|
||||
/** Return the address family of <b>a</b>. Possible values are:
|
||||
* AF_INET6, AF_INET, AF_UNSPEC. */
|
||||
static INLINE sa_family_t
|
||||
static inline sa_family_t
|
||||
tor_addr_family(const tor_addr_t *a)
|
||||
{
|
||||
return a->family;
|
||||
}
|
||||
/** Return an in_addr* equivalent to <b>a</b>, or NULL if <b>a</b> is not
|
||||
* an IPv4 address. */
|
||||
static INLINE const struct in_addr *
|
||||
static inline const struct in_addr *
|
||||
tor_addr_to_in(const tor_addr_t *a)
|
||||
{
|
||||
return a->family == AF_INET ? &a->addr.in_addr : NULL;
|
||||
}
|
||||
/** Return true iff <b>a</b> is an IPv4 address equal to the host-ordered
|
||||
* address in <b>u</b>. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
tor_addr_eq_ipv4h(const tor_addr_t *a, uint32_t u)
|
||||
{
|
||||
return a->family == AF_INET ? (tor_addr_to_ipv4h(a) == u) : 0;
|
||||
@ -289,7 +289,7 @@ char *tor_dup_ip(uint32_t addr) ATTR_MALLOC;
|
||||
MOCK_DECL(int,get_interface_address,(int severity, uint32_t *addr));
|
||||
/** Free a smartlist of IP addresses returned by get_interface_address_list.
|
||||
*/
|
||||
static INLINE void
|
||||
static inline void
|
||||
free_interface_address_list(smartlist_t *addrs)
|
||||
{
|
||||
free_interface_address6_list(addrs);
|
||||
@ -302,7 +302,7 @@ free_interface_address_list(smartlist_t *addrs)
|
||||
* Returns NULL on failure.
|
||||
* Use free_interface_address_list to free the returned list.
|
||||
*/
|
||||
static INLINE smartlist_t *
|
||||
static inline smartlist_t *
|
||||
get_interface_address_list(int severity, int include_internal)
|
||||
{
|
||||
return get_interface_address6_list(severity, AF_INET, include_internal);
|
||||
|
@ -271,7 +271,7 @@ evaluate_ctr_for_aes(void)
|
||||
* Helper function: set <b>cipher</b>'s internal buffer to the encrypted
|
||||
* value of the current counter.
|
||||
*/
|
||||
static INLINE void
|
||||
static inline void
|
||||
aes_fill_buf_(aes_cnt_cipher_t *cipher)
|
||||
{
|
||||
/* We don't currently use OpenSSL's counter mode implementation because:
|
||||
|
@ -1078,7 +1078,7 @@ static int n_sockets_open = 0;
|
||||
static tor_mutex_t *socket_accounting_mutex = NULL;
|
||||
|
||||
/** Helper: acquire the socket accounting lock. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
socket_accounting_lock(void)
|
||||
{
|
||||
if (PREDICT_UNLIKELY(!socket_accounting_mutex))
|
||||
@ -1087,7 +1087,7 @@ socket_accounting_lock(void)
|
||||
}
|
||||
|
||||
/** Helper: release the socket accounting lock. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
socket_accounting_unlock(void)
|
||||
{
|
||||
tor_mutex_release(socket_accounting_mutex);
|
||||
@ -1163,7 +1163,7 @@ tor_close_socket(tor_socket_t s)
|
||||
#ifdef DEBUG_SOCKET_COUNTING
|
||||
/** Helper: if DEBUG_SOCKET_COUNTING is enabled, remember that <b>s</b> is
|
||||
* now an open socket. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
mark_socket_open(tor_socket_t s)
|
||||
{
|
||||
/* XXXX This bitarray business will NOT work on windows: sockets aren't
|
||||
@ -1487,7 +1487,7 @@ tor_socketpair(int family, int type, int protocol, tor_socket_t fd[2])
|
||||
|
||||
#ifdef NEED_ERSATZ_SOCKETPAIR
|
||||
|
||||
static INLINE socklen_t
|
||||
static inline socklen_t
|
||||
SIZEOF_SOCKADDR(int domain)
|
||||
{
|
||||
switch (domain) {
|
||||
|
@ -290,7 +290,7 @@ const void *tor_memmem(const void *haystack, size_t hlen, const void *needle,
|
||||
size_t nlen) ATTR_NONNULL((1,3));
|
||||
static const void *tor_memstr(const void *haystack, size_t hlen,
|
||||
const char *needle) ATTR_NONNULL((1,3));
|
||||
static INLINE const void *
|
||||
static inline const void *
|
||||
tor_memstr(const void *haystack, size_t hlen, const char *needle)
|
||||
{
|
||||
return tor_memmem(haystack, hlen, needle, strlen(needle));
|
||||
@ -301,7 +301,7 @@ tor_memstr(const void *haystack, size_t hlen, const char *needle)
|
||||
#define DECLARE_CTYPE_FN(name) \
|
||||
static int TOR_##name(char c); \
|
||||
extern const uint32_t TOR_##name##_TABLE[]; \
|
||||
static INLINE int TOR_##name(char c) { \
|
||||
static inline int TOR_##name(char c) { \
|
||||
uint8_t u = c; \
|
||||
return !!(TOR_##name##_TABLE[(u >> 5) & 7] & (1u << (u & 31))); \
|
||||
}
|
||||
@ -615,7 +615,7 @@ void set_uint64(void *cp, uint64_t v) ATTR_NONNULL((1));
|
||||
/* These uint8 variants are defined to make the code more uniform. */
|
||||
#define get_uint8(cp) (*(const uint8_t*)(cp))
|
||||
static void set_uint8(void *cp, uint8_t v);
|
||||
static INLINE void
|
||||
static inline void
|
||||
set_uint8(void *cp, uint8_t v)
|
||||
{
|
||||
*(uint8_t*)cp = v;
|
||||
|
@ -60,7 +60,7 @@ smartlist_clear(smartlist_t *sl)
|
||||
}
|
||||
|
||||
/** Make sure that <b>sl</b> can hold at least <b>size</b> entries. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
smartlist_ensure_capacity(smartlist_t *sl, int size)
|
||||
{
|
||||
#if SIZEOF_SIZE_T > SIZEOF_INT
|
||||
@ -867,7 +867,7 @@ smartlist_sort_pointers(smartlist_t *sl)
|
||||
/** Helper. <b>sl</b> may have at most one violation of the heap property:
|
||||
* the item at <b>idx</b> may be greater than one or both of its children.
|
||||
* Restore the heap property. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
smartlist_heapify(smartlist_t *sl,
|
||||
int (*compare)(const void *a, const void *b),
|
||||
int idx_field_offset,
|
||||
@ -1068,35 +1068,35 @@ DEFINE_MAP_STRUCTS(digestmap_t, char key[DIGEST_LEN], digestmap_);
|
||||
DEFINE_MAP_STRUCTS(digest256map_t, uint8_t key[DIGEST256_LEN], digest256map_);
|
||||
|
||||
/** Helper: compare strmap_entry_t objects by key value. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
strmap_entries_eq(const strmap_entry_t *a, const strmap_entry_t *b)
|
||||
{
|
||||
return !strcmp(a->key, b->key);
|
||||
}
|
||||
|
||||
/** Helper: return a hash value for a strmap_entry_t. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
strmap_entry_hash(const strmap_entry_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g(a->key, strlen(a->key));
|
||||
}
|
||||
|
||||
/** Helper: compare digestmap_entry_t objects by key value. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
digestmap_entries_eq(const digestmap_entry_t *a, const digestmap_entry_t *b)
|
||||
{
|
||||
return tor_memeq(a->key, b->key, DIGEST_LEN);
|
||||
}
|
||||
|
||||
/** Helper: return a hash value for a digest_map_t. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
digestmap_entry_hash(const digestmap_entry_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g(a->key, DIGEST_LEN);
|
||||
}
|
||||
|
||||
/** Helper: compare digestmap_entry_t objects by key value. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
digest256map_entries_eq(const digest256map_entry_t *a,
|
||||
const digest256map_entry_t *b)
|
||||
{
|
||||
@ -1104,7 +1104,7 @@ digest256map_entries_eq(const digest256map_entry_t *a,
|
||||
}
|
||||
|
||||
/** Helper: return a hash value for a digest_map_t. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
digest256map_entry_hash(const digest256map_entry_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g(a->key, DIGEST256_LEN);
|
||||
@ -1127,49 +1127,49 @@ HT_GENERATE2(digest256map_impl, digest256map_entry_t, node,
|
||||
digest256map_entry_hash,
|
||||
digest256map_entries_eq, 0.6, tor_reallocarray_, tor_free_)
|
||||
|
||||
static INLINE void
|
||||
static inline void
|
||||
strmap_entry_free(strmap_entry_t *ent)
|
||||
{
|
||||
tor_free(ent->key);
|
||||
tor_free(ent);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digestmap_entry_free(digestmap_entry_t *ent)
|
||||
{
|
||||
tor_free(ent);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digest256map_entry_free(digest256map_entry_t *ent)
|
||||
{
|
||||
tor_free(ent);
|
||||
}
|
||||
|
||||
static INLINE void
|
||||
static inline void
|
||||
strmap_assign_tmp_key(strmap_entry_t *ent, const char *key)
|
||||
{
|
||||
ent->key = (char*)key;
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digestmap_assign_tmp_key(digestmap_entry_t *ent, const char *key)
|
||||
{
|
||||
memcpy(ent->key, key, DIGEST_LEN);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digest256map_assign_tmp_key(digest256map_entry_t *ent, const uint8_t *key)
|
||||
{
|
||||
memcpy(ent->key, key, DIGEST256_LEN);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
strmap_assign_key(strmap_entry_t *ent, const char *key)
|
||||
{
|
||||
ent->key = tor_strdup(key);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digestmap_assign_key(digestmap_entry_t *ent, const char *key)
|
||||
{
|
||||
memcpy(ent->key, key, DIGEST_LEN);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
digest256map_assign_key(digest256map_entry_t *ent, const uint8_t *key)
|
||||
{
|
||||
memcpy(ent->key, key, DIGEST256_LEN);
|
||||
|
@ -53,21 +53,21 @@ void smartlist_subtract(smartlist_t *sl1, const smartlist_t *sl2);
|
||||
#ifdef DEBUG_SMARTLIST
|
||||
/** Return the number of items in sl.
|
||||
*/
|
||||
static INLINE int smartlist_len(const smartlist_t *sl);
|
||||
static INLINE int smartlist_len(const smartlist_t *sl) {
|
||||
static inline int smartlist_len(const smartlist_t *sl);
|
||||
static inline int smartlist_len(const smartlist_t *sl) {
|
||||
tor_assert(sl);
|
||||
return (sl)->num_used;
|
||||
}
|
||||
/** Return the <b>idx</b>th element of sl.
|
||||
*/
|
||||
static INLINE void *smartlist_get(const smartlist_t *sl, int idx);
|
||||
static INLINE void *smartlist_get(const smartlist_t *sl, int idx) {
|
||||
static inline void *smartlist_get(const smartlist_t *sl, int idx);
|
||||
static inline void *smartlist_get(const smartlist_t *sl, int idx) {
|
||||
tor_assert(sl);
|
||||
tor_assert(idx>=0);
|
||||
tor_assert(sl->num_used > idx);
|
||||
return sl->list[idx];
|
||||
}
|
||||
static INLINE void smartlist_set(smartlist_t *sl, int idx, void *val) {
|
||||
static inline void smartlist_set(smartlist_t *sl, int idx, void *val) {
|
||||
tor_assert(sl);
|
||||
tor_assert(idx>=0);
|
||||
tor_assert(sl->num_used > idx);
|
||||
@ -81,7 +81,7 @@ static INLINE void smartlist_set(smartlist_t *sl, int idx, void *val) {
|
||||
|
||||
/** Exchange the elements at indices <b>idx1</b> and <b>idx2</b> of the
|
||||
* smartlist <b>sl</b>. */
|
||||
static INLINE void smartlist_swap(smartlist_t *sl, int idx1, int idx2)
|
||||
static inline void smartlist_swap(smartlist_t *sl, int idx1, int idx2)
|
||||
{
|
||||
if (idx1 != idx2) {
|
||||
void *elt = smartlist_get(sl, idx1);
|
||||
@ -500,64 +500,64 @@ void* strmap_remove_lc(strmap_t *map, const char *key);
|
||||
#define DECLARE_TYPED_DIGESTMAP_FNS(prefix, maptype, valtype) \
|
||||
typedef struct maptype maptype; \
|
||||
typedef struct prefix##iter_t *prefix##iter_t; \
|
||||
ATTR_UNUSED static INLINE maptype* \
|
||||
ATTR_UNUSED static inline maptype* \
|
||||
prefix##new(void) \
|
||||
{ \
|
||||
return (maptype*)digestmap_new(); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE digestmap_t* \
|
||||
ATTR_UNUSED static inline digestmap_t* \
|
||||
prefix##to_digestmap(maptype *map) \
|
||||
{ \
|
||||
return (digestmap_t*)map; \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE valtype* \
|
||||
ATTR_UNUSED static inline valtype* \
|
||||
prefix##get(maptype *map, const char *key) \
|
||||
{ \
|
||||
return (valtype*)digestmap_get((digestmap_t*)map, key); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE valtype* \
|
||||
ATTR_UNUSED static inline valtype* \
|
||||
prefix##set(maptype *map, const char *key, valtype *val) \
|
||||
{ \
|
||||
return (valtype*)digestmap_set((digestmap_t*)map, key, val); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE valtype* \
|
||||
ATTR_UNUSED static inline valtype* \
|
||||
prefix##remove(maptype *map, const char *key) \
|
||||
{ \
|
||||
return (valtype*)digestmap_remove((digestmap_t*)map, key); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE void \
|
||||
ATTR_UNUSED static inline void \
|
||||
prefix##free(maptype *map, void (*free_val)(void*)) \
|
||||
{ \
|
||||
digestmap_free((digestmap_t*)map, free_val); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE int \
|
||||
ATTR_UNUSED static inline int \
|
||||
prefix##isempty(maptype *map) \
|
||||
{ \
|
||||
return digestmap_isempty((digestmap_t*)map); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE int \
|
||||
ATTR_UNUSED static inline int \
|
||||
prefix##size(maptype *map) \
|
||||
{ \
|
||||
return digestmap_size((digestmap_t*)map); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE \
|
||||
ATTR_UNUSED static inline \
|
||||
prefix##iter_t *prefix##iter_init(maptype *map) \
|
||||
{ \
|
||||
return (prefix##iter_t*) digestmap_iter_init((digestmap_t*)map); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE \
|
||||
ATTR_UNUSED static inline \
|
||||
prefix##iter_t *prefix##iter_next(maptype *map, prefix##iter_t *iter) \
|
||||
{ \
|
||||
return (prefix##iter_t*) digestmap_iter_next( \
|
||||
(digestmap_t*)map, (digestmap_iter_t*)iter); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE prefix##iter_t* \
|
||||
ATTR_UNUSED static inline prefix##iter_t* \
|
||||
prefix##iter_next_rmv(maptype *map, prefix##iter_t *iter) \
|
||||
{ \
|
||||
return (prefix##iter_t*) digestmap_iter_next_rmv( \
|
||||
(digestmap_t*)map, (digestmap_iter_t*)iter); \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE void \
|
||||
ATTR_UNUSED static inline void \
|
||||
prefix##iter_get(prefix##iter_t *iter, \
|
||||
const char **keyp, \
|
||||
valtype **valp) \
|
||||
@ -566,7 +566,7 @@ void* strmap_remove_lc(strmap_t *map, const char *key);
|
||||
digestmap_iter_get((digestmap_iter_t*) iter, keyp, &v); \
|
||||
*valp = v; \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE int \
|
||||
ATTR_UNUSED static inline int \
|
||||
prefix##iter_done(prefix##iter_t *iter) \
|
||||
{ \
|
||||
return digestmap_iter_done((digestmap_iter_t*)iter); \
|
||||
@ -584,7 +584,7 @@ void* strmap_remove_lc(strmap_t *map, const char *key);
|
||||
/** A random-access array of one-bit-wide elements. */
|
||||
typedef unsigned int bitarray_t;
|
||||
/** Create a new bit array that can hold <b>n_bits</b> bits. */
|
||||
static INLINE bitarray_t *
|
||||
static inline bitarray_t *
|
||||
bitarray_init_zero(unsigned int n_bits)
|
||||
{
|
||||
/* round up to the next int. */
|
||||
@ -594,7 +594,7 @@ bitarray_init_zero(unsigned int n_bits)
|
||||
/** Expand <b>ba</b> from holding <b>n_bits_old</b> to <b>n_bits_new</b>,
|
||||
* clearing all new bits. Returns a possibly changed pointer to the
|
||||
* bitarray. */
|
||||
static INLINE bitarray_t *
|
||||
static inline bitarray_t *
|
||||
bitarray_expand(bitarray_t *ba,
|
||||
unsigned int n_bits_old, unsigned int n_bits_new)
|
||||
{
|
||||
@ -611,26 +611,26 @@ bitarray_expand(bitarray_t *ba,
|
||||
return (bitarray_t*) ptr;
|
||||
}
|
||||
/** Free the bit array <b>ba</b>. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
bitarray_free(bitarray_t *ba)
|
||||
{
|
||||
tor_free(ba);
|
||||
}
|
||||
/** Set the <b>bit</b>th bit in <b>b</b> to 1. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
bitarray_set(bitarray_t *b, int bit)
|
||||
{
|
||||
b[bit >> BITARRAY_SHIFT] |= (1u << (bit & BITARRAY_MASK));
|
||||
}
|
||||
/** Set the <b>bit</b>th bit in <b>b</b> to 0. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
bitarray_clear(bitarray_t *b, int bit)
|
||||
{
|
||||
b[bit >> BITARRAY_SHIFT] &= ~ (1u << (bit & BITARRAY_MASK));
|
||||
}
|
||||
/** Return true iff <b>bit</b>th bit in <b>b</b> is nonzero. NOTE: does
|
||||
* not necessarily return 1 on true. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
bitarray_is_set(bitarray_t *b, int bit)
|
||||
{
|
||||
return b[bit >> BITARRAY_SHIFT] & (1u << (bit & BITARRAY_MASK));
|
||||
@ -645,7 +645,7 @@ typedef struct {
|
||||
|
||||
#define BIT(n) ((n) & set->mask)
|
||||
/** Add the digest <b>digest</b> to <b>set</b>. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
digestset_add(digestset_t *set, const char *digest)
|
||||
{
|
||||
const uint64_t x = siphash24g(digest, 20);
|
||||
@ -661,7 +661,7 @@ digestset_add(digestset_t *set, const char *digest)
|
||||
|
||||
/** If <b>digest</b> is in <b>set</b>, return nonzero. Otherwise,
|
||||
* <em>probably</em> return zero. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
digestset_contains(const digestset_t *set, const char *digest)
|
||||
{
|
||||
const uint64_t x = siphash24g(digest, 20);
|
||||
@ -689,33 +689,33 @@ double find_nth_double(double *array, int n_elements, int nth);
|
||||
int32_t find_nth_int32(int32_t *array, int n_elements, int nth);
|
||||
uint32_t find_nth_uint32(uint32_t *array, int n_elements, int nth);
|
||||
long find_nth_long(long *array, int n_elements, int nth);
|
||||
static INLINE int
|
||||
static inline int
|
||||
median_int(int *array, int n_elements)
|
||||
{
|
||||
return find_nth_int(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
static INLINE time_t
|
||||
static inline time_t
|
||||
median_time(time_t *array, int n_elements)
|
||||
{
|
||||
return find_nth_time(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
static INLINE double
|
||||
static inline double
|
||||
median_double(double *array, int n_elements)
|
||||
{
|
||||
return find_nth_double(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
static INLINE uint32_t
|
||||
static inline uint32_t
|
||||
median_uint32(uint32_t *array, int n_elements)
|
||||
{
|
||||
return find_nth_uint32(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
static INLINE int32_t
|
||||
static inline int32_t
|
||||
median_int32(int32_t *array, int n_elements)
|
||||
{
|
||||
return find_nth_int32(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
|
||||
static INLINE uint32_t
|
||||
static inline uint32_t
|
||||
third_quartile_uint32(uint32_t *array, int n_elements)
|
||||
{
|
||||
return find_nth_uint32(array, n_elements, (n_elements*3)/4);
|
||||
|
@ -112,7 +112,7 @@ static int tor_check_dh_key(int severity, BIGNUM *bn);
|
||||
|
||||
/** Return the number of bytes added by padding method <b>padding</b>.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
crypto_get_rsa_padding_overhead(int padding)
|
||||
{
|
||||
switch (padding)
|
||||
@ -124,7 +124,7 @@ crypto_get_rsa_padding_overhead(int padding)
|
||||
|
||||
/** Given a padding method <b>padding</b>, return the correct OpenSSL constant.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
crypto_get_rsa_padding(int padding)
|
||||
{
|
||||
switch (padding)
|
||||
|
@ -64,7 +64,7 @@ typedef struct logfile_t {
|
||||
static void log_free(logfile_t *victim);
|
||||
|
||||
/** Helper: map a log severity to descriptive string. */
|
||||
static INLINE const char *
|
||||
static inline const char *
|
||||
sev_to_string(int severity)
|
||||
{
|
||||
switch (severity) {
|
||||
@ -80,7 +80,7 @@ sev_to_string(int severity)
|
||||
}
|
||||
|
||||
/** Helper: decide whether to include the function name in the log message. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
should_log_function_name(log_domain_mask_t domain, int severity)
|
||||
{
|
||||
switch (severity) {
|
||||
@ -163,7 +163,7 @@ static void close_log(logfile_t *victim);
|
||||
|
||||
static char *domain_to_string(log_domain_mask_t domain,
|
||||
char *buf, size_t buflen);
|
||||
static INLINE char *format_msg(char *buf, size_t buf_len,
|
||||
static inline char *format_msg(char *buf, size_t buf_len,
|
||||
log_domain_mask_t domain, int severity, const char *funcname,
|
||||
const char *suffix,
|
||||
const char *format, va_list ap, size_t *msg_len_out)
|
||||
@ -199,7 +199,7 @@ set_log_time_granularity(int granularity_msec)
|
||||
/** Helper: Write the standard prefix for log lines to a
|
||||
* <b>buf_len</b> character buffer in <b>buf</b>.
|
||||
*/
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
log_prefix_(char *buf, size_t buf_len, int severity)
|
||||
{
|
||||
time_t t;
|
||||
@ -278,7 +278,7 @@ const char bug_suffix[] = " (on Tor " VERSION
|
||||
* than once.) Return a pointer to the first character of the message
|
||||
* portion of the formatted string.
|
||||
*/
|
||||
static INLINE char *
|
||||
static inline char *
|
||||
format_msg(char *buf, size_t buf_len,
|
||||
log_domain_mask_t domain, int severity, const char *funcname,
|
||||
const char *suffix,
|
||||
@ -393,7 +393,7 @@ pending_log_message_free(pending_log_message_t *msg)
|
||||
/** Return true iff <b>lf</b> would like to receive a message with the
|
||||
* specified <b>severity</b> in the specified <b>domain</b>.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
logfile_wants_message(const logfile_t *lf, int severity,
|
||||
log_domain_mask_t domain)
|
||||
{
|
||||
@ -416,7 +416,7 @@ logfile_wants_message(const logfile_t *lf, int severity,
|
||||
* we already deferred this message for pending callbacks and don't need to do
|
||||
* it again. Otherwise, if we need to do it, do it, and set
|
||||
* <b>callbacks_deferred</b> to 1. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
logfile_deliver(logfile_t *lf, const char *buf, size_t msg_len,
|
||||
const char *msg_after_prefix, log_domain_mask_t domain,
|
||||
int severity, int *callbacks_deferred)
|
||||
|
@ -61,7 +61,7 @@
|
||||
#endif
|
||||
|
||||
/** Increment <b>ptr</b> until it is aligned to MEMAREA_ALIGN. */
|
||||
static INLINE void *
|
||||
static inline void *
|
||||
realign_pointer(void *ptr)
|
||||
{
|
||||
uintptr_t x = (uintptr_t)ptr;
|
||||
|
@ -91,7 +91,7 @@ tor_zlib_get_header_version_str(void)
|
||||
}
|
||||
|
||||
/** Return the 'bits' value to tell zlib to use <b>method</b>.*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
method_bits(compress_method_t method, zlib_compression_level_t level)
|
||||
{
|
||||
/* Bits+16 means "use gzip" in zlib >= 1.2 */
|
||||
@ -104,7 +104,7 @@ method_bits(compress_method_t method, zlib_compression_level_t level)
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
get_memlevel(zlib_compression_level_t level)
|
||||
{
|
||||
switch (level) {
|
||||
|
@ -143,7 +143,7 @@ tor_tls_allocate_tor_tls_object_ex_data_index(void)
|
||||
|
||||
/** Helper: given a SSL* pointer, return the tor_tls_t object using that
|
||||
* pointer. */
|
||||
STATIC INLINE tor_tls_t *
|
||||
STATIC inline tor_tls_t *
|
||||
tor_tls_get_by_ssl(const SSL *ssl)
|
||||
{
|
||||
tor_tls_t *result = SSL_get_ex_data(ssl, tor_tls_object_ex_data_index);
|
||||
|
@ -207,7 +207,7 @@ tor_malloc_zero_(size_t size DMALLOC_PARAMS)
|
||||
#define SQRT_SIZE_MAX_P1 (((size_t)1) << (sizeof(size_t)*4))
|
||||
|
||||
/** Return non-zero if and only if the product of the arguments is exact. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
size_mul_check(const size_t x, const size_t y)
|
||||
{
|
||||
/* This first check is equivalent to
|
||||
@ -4451,7 +4451,7 @@ tor_get_exit_code(process_handle_t *process_handle,
|
||||
/** Helper: return the number of characters in <b>s</b> preceding the first
|
||||
* occurrence of <b>ch</b>. If <b>ch</b> does not occur in <b>s</b>, return
|
||||
* the length of <b>s</b>. Should be equivalent to strspn(s, "ch"). */
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
str_num_before(const char *s, char ch)
|
||||
{
|
||||
const char *cp = strchr(s, ch);
|
||||
|
@ -465,7 +465,7 @@ base16_encode(char *dest, size_t destlen, const char *src, size_t srclen)
|
||||
}
|
||||
|
||||
/** Helper: given a hex digit, return its value, or -1 if it isn't hex. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
hex_decode_digit_(char c)
|
||||
{
|
||||
switch (c) {
|
||||
|
@ -45,13 +45,13 @@ struct waitpid_callback_t {
|
||||
unsigned running;
|
||||
};
|
||||
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
process_map_entry_hash_(const waitpid_callback_t *ent)
|
||||
{
|
||||
return (unsigned) ent->pid;
|
||||
}
|
||||
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
process_map_entries_eq_(const waitpid_callback_t *a,
|
||||
const waitpid_callback_t *b)
|
||||
{
|
||||
|
@ -805,7 +805,7 @@ reply_handle(struct evdns_request *const req, u16 flags, u32 ttl, struct reply *
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
name_parse(u8 *packet, int length, int *idx, char *name_out, size_t name_out_len) {
|
||||
int name_end = -1;
|
||||
int j = *idx;
|
||||
|
26
src/ext/ht.h
26
src/ext/ht.h
@ -61,7 +61,7 @@
|
||||
#define HT_INIT(name, head) name##_HT_INIT(head)
|
||||
#define HT_REP_IS_BAD_(name, head) name##_HT_REP_IS_BAD_(head)
|
||||
/* Helper: */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
ht_improve_hash(unsigned h)
|
||||
{
|
||||
/* Aim to protect against poor hash functions by adding logic here
|
||||
@ -75,7 +75,7 @@ ht_improve_hash(unsigned h)
|
||||
|
||||
#if 0
|
||||
/** Basic string hash function, from Java standard String.hashCode(). */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
ht_string_hash(const char *s)
|
||||
{
|
||||
unsigned h = 0;
|
||||
@ -90,7 +90,7 @@ ht_string_hash(const char *s)
|
||||
|
||||
#if 0
|
||||
/** Basic string hash function, from Python's str.__hash__() */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
ht_string_hash(const char *s)
|
||||
{
|
||||
unsigned h;
|
||||
@ -143,7 +143,7 @@ ht_string_hash(const char *s)
|
||||
int name##_HT_GROW(struct name *ht, unsigned min_capacity); \
|
||||
void name##_HT_CLEAR(struct name *ht); \
|
||||
int name##_HT_REP_IS_BAD_(const struct name *ht); \
|
||||
static INLINE void \
|
||||
static inline void \
|
||||
name##_HT_INIT(struct name *head) { \
|
||||
head->hth_table_length = 0; \
|
||||
head->hth_table = NULL; \
|
||||
@ -153,7 +153,7 @@ ht_string_hash(const char *s)
|
||||
} \
|
||||
/* Helper: returns a pointer to the right location in the table \
|
||||
* 'head' to find or insert the element 'elm'. */ \
|
||||
static INLINE struct type ** \
|
||||
static inline struct type ** \
|
||||
name##_HT_FIND_P_(struct name *head, struct type *elm) \
|
||||
{ \
|
||||
struct type **p; \
|
||||
@ -169,7 +169,7 @@ ht_string_hash(const char *s)
|
||||
} \
|
||||
/* Return a pointer to the element in the table 'head' matching 'elm', \
|
||||
* or NULL if no such element exists */ \
|
||||
ATTR_UNUSED static INLINE struct type * \
|
||||
ATTR_UNUSED static inline struct type * \
|
||||
name##_HT_FIND(const struct name *head, struct type *elm) \
|
||||
{ \
|
||||
struct type **p; \
|
||||
@ -180,7 +180,7 @@ ht_string_hash(const char *s)
|
||||
} \
|
||||
/* Insert the element 'elm' into the table 'head'. Do not call this \
|
||||
* function if the table might already contain a matching element. */ \
|
||||
ATTR_UNUSED static INLINE void \
|
||||
ATTR_UNUSED static inline void \
|
||||
name##_HT_INSERT(struct name *head, struct type *elm) \
|
||||
{ \
|
||||
struct type **p; \
|
||||
@ -195,7 +195,7 @@ ht_string_hash(const char *s)
|
||||
/* Insert the element 'elm' into the table 'head'. If there already \
|
||||
* a matching element in the table, replace that element and return \
|
||||
* it. */ \
|
||||
ATTR_UNUSED static INLINE struct type * \
|
||||
ATTR_UNUSED static inline struct type * \
|
||||
name##_HT_REPLACE(struct name *head, struct type *elm) \
|
||||
{ \
|
||||
struct type **p, *r; \
|
||||
@ -216,7 +216,7 @@ ht_string_hash(const char *s)
|
||||
} \
|
||||
/* Remove any element matching 'elm' from the table 'head'. If such \
|
||||
* an element is found, return it; otherwise return NULL. */ \
|
||||
ATTR_UNUSED static INLINE struct type * \
|
||||
ATTR_UNUSED static inline struct type * \
|
||||
name##_HT_REMOVE(struct name *head, struct type *elm) \
|
||||
{ \
|
||||
struct type **p, *r; \
|
||||
@ -234,7 +234,7 @@ ht_string_hash(const char *s)
|
||||
* using 'data' as its second argument. If the function returns \
|
||||
* nonzero, remove the most recently examined element before invoking \
|
||||
* the function again. */ \
|
||||
ATTR_UNUSED static INLINE void \
|
||||
ATTR_UNUSED static inline void \
|
||||
name##_HT_FOREACH_FN(struct name *head, \
|
||||
int (*fn)(struct type *, void *), \
|
||||
void *data) \
|
||||
@ -260,7 +260,7 @@ ht_string_hash(const char *s)
|
||||
/* Return a pointer to the first element in the table 'head', under \
|
||||
* an arbitrary order. This order is stable under remove operations, \
|
||||
* but not under others. If the table is empty, return NULL. */ \
|
||||
ATTR_UNUSED static INLINE struct type ** \
|
||||
ATTR_UNUSED static inline struct type ** \
|
||||
name##_HT_START(struct name *head) \
|
||||
{ \
|
||||
unsigned b = 0; \
|
||||
@ -279,7 +279,7 @@ ht_string_hash(const char *s)
|
||||
* NULL. If 'elm' is to be removed from the table, you must call \
|
||||
* this function for the next value before you remove it. \
|
||||
*/ \
|
||||
ATTR_UNUSED static INLINE struct type ** \
|
||||
ATTR_UNUSED static inline struct type ** \
|
||||
name##_HT_NEXT(struct name *head, struct type **elm) \
|
||||
{ \
|
||||
if ((*elm)->field.hte_next) { \
|
||||
@ -299,7 +299,7 @@ ht_string_hash(const char *s)
|
||||
return NULL; \
|
||||
} \
|
||||
} \
|
||||
ATTR_UNUSED static INLINE struct type ** \
|
||||
ATTR_UNUSED static inline struct type ** \
|
||||
name##_HT_NEXT_RMV(struct name *head, struct type **elm) \
|
||||
{ \
|
||||
unsigned h = HT_ELT_HASH_(*elm, field, hashfn); \
|
||||
|
@ -78,7 +78,7 @@ static int parse_socks_client(const uint8_t *data, size_t datalen,
|
||||
|
||||
/** Return the next character in <b>chunk</b> onto which data can be appended.
|
||||
* If the chunk is full, this might be off the end of chunk->mem. */
|
||||
static INLINE char *
|
||||
static inline char *
|
||||
CHUNK_WRITE_PTR(chunk_t *chunk)
|
||||
{
|
||||
return chunk->data + chunk->datalen;
|
||||
@ -86,7 +86,7 @@ CHUNK_WRITE_PTR(chunk_t *chunk)
|
||||
|
||||
/** Return the number of bytes that can be written onto <b>chunk</b> without
|
||||
* running out of space. */
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
CHUNK_REMAINING_CAPACITY(const chunk_t *chunk)
|
||||
{
|
||||
return (chunk->mem + chunk->memlen) - (chunk->data + chunk->datalen);
|
||||
@ -94,7 +94,7 @@ CHUNK_REMAINING_CAPACITY(const chunk_t *chunk)
|
||||
|
||||
/** Move all bytes stored in <b>chunk</b> to the front of <b>chunk</b>->mem,
|
||||
* to free up space at the end. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
chunk_repack(chunk_t *chunk)
|
||||
{
|
||||
if (chunk->datalen && chunk->data != &chunk->mem[0]) {
|
||||
@ -118,7 +118,7 @@ chunk_free_unchecked(chunk_t *chunk)
|
||||
total_bytes_allocated_in_chunks -= CHUNK_ALLOC_SIZE(chunk->memlen);
|
||||
tor_free(chunk);
|
||||
}
|
||||
static INLINE chunk_t *
|
||||
static inline chunk_t *
|
||||
chunk_new_with_alloc_size(size_t alloc)
|
||||
{
|
||||
chunk_t *ch;
|
||||
@ -136,7 +136,7 @@ chunk_new_with_alloc_size(size_t alloc)
|
||||
|
||||
/** Expand <b>chunk</b> until it can hold <b>sz</b> bytes, and return a
|
||||
* new pointer to <b>chunk</b>. Old pointers are no longer valid. */
|
||||
static INLINE chunk_t *
|
||||
static inline chunk_t *
|
||||
chunk_grow(chunk_t *chunk, size_t sz)
|
||||
{
|
||||
off_t offset;
|
||||
@ -165,7 +165,7 @@ chunk_grow(chunk_t *chunk, size_t sz)
|
||||
|
||||
/** Return the allocation size we'd like to use to hold <b>target</b>
|
||||
* bytes. */
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
preferred_chunk_size(size_t target)
|
||||
{
|
||||
size_t sz = MIN_CHUNK_ALLOC;
|
||||
@ -255,7 +255,7 @@ buf_get_first_chunk_data(const buf_t *buf, const char **cp, size_t *sz)
|
||||
#endif
|
||||
|
||||
/** Remove the first <b>n</b> bytes from buf. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
buf_remove_from_front(buf_t *buf, size_t n)
|
||||
{
|
||||
tor_assert(buf->datalen >= n);
|
||||
@ -452,7 +452,7 @@ buf_get_total_allocation(void)
|
||||
* <b>chunk</b> (which must be on <b>buf</b>). If we get an EOF, set
|
||||
* *<b>reached_eof</b> to 1. Return -1 on error, 0 on eof or blocking,
|
||||
* and the number of bytes read otherwise. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
read_to_chunk(buf_t *buf, chunk_t *chunk, tor_socket_t fd, size_t at_most,
|
||||
int *reached_eof, int *socket_error)
|
||||
{
|
||||
@ -488,7 +488,7 @@ read_to_chunk(buf_t *buf, chunk_t *chunk, tor_socket_t fd, size_t at_most,
|
||||
|
||||
/** As read_to_chunk(), but return (negative) error code on error, blocking,
|
||||
* or TLS, and the number of bytes read otherwise. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
read_to_chunk_tls(buf_t *buf, chunk_t *chunk, tor_tls_t *tls,
|
||||
size_t at_most)
|
||||
{
|
||||
@ -611,7 +611,7 @@ read_to_buf_tls(tor_tls_t *tls, size_t at_most, buf_t *buf)
|
||||
* the bytes written from *<b>buf_flushlen</b>. Return the number of bytes
|
||||
* written on success, 0 on blocking, -1 on failure.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
flush_chunk(tor_socket_t s, buf_t *buf, chunk_t *chunk, size_t sz,
|
||||
size_t *buf_flushlen)
|
||||
{
|
||||
@ -646,7 +646,7 @@ flush_chunk(tor_socket_t s, buf_t *buf, chunk_t *chunk, size_t sz,
|
||||
* bytes written from *<b>buf_flushlen</b>. Return the number of bytes
|
||||
* written on success, and a TOR_TLS error code on failure or blocking.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
flush_chunk_tls(tor_tls_t *tls, buf_t *buf, chunk_t *chunk,
|
||||
size_t sz, size_t *buf_flushlen)
|
||||
{
|
||||
@ -797,7 +797,7 @@ write_to_buf(const char *string, size_t string_len, buf_t *buf)
|
||||
/** Helper: copy the first <b>string_len</b> bytes from <b>buf</b>
|
||||
* onto <b>string</b>.
|
||||
*/
|
||||
static INLINE void
|
||||
static inline void
|
||||
peek_from_buf(char *string, size_t string_len, const buf_t *buf)
|
||||
{
|
||||
chunk_t *chunk;
|
||||
@ -842,7 +842,7 @@ fetch_from_buf(char *string, size_t string_len, buf_t *buf)
|
||||
|
||||
/** True iff the cell command <b>command</b> is one that implies a
|
||||
* variable-length cell in Tor link protocol <b>linkproto</b>. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
cell_command_is_var_length(uint8_t command, int linkproto)
|
||||
{
|
||||
/* If linkproto is v2 (2), CELL_VERSIONS is the only variable-length cells
|
||||
@ -1083,7 +1083,7 @@ buf_find_pos_of_char(char ch, buf_pos_t *out)
|
||||
|
||||
/** Advance <b>pos</b> by a single character, if there are any more characters
|
||||
* in the buffer. Returns 0 on success, -1 on failure. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
buf_pos_inc(buf_pos_t *pos)
|
||||
{
|
||||
++pos->pos;
|
||||
|
@ -127,13 +127,13 @@ typedef struct channel_idmap_entry_s {
|
||||
TOR_LIST_HEAD(channel_list_s, channel_s) channel_list;
|
||||
} channel_idmap_entry_t;
|
||||
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
channel_idmap_hash(const channel_idmap_entry_t *ent)
|
||||
{
|
||||
return (unsigned) siphash24g(ent->digest, DIGEST_LEN);
|
||||
}
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
channel_idmap_eq(const channel_idmap_entry_t *a,
|
||||
const channel_idmap_entry_t *b)
|
||||
{
|
||||
|
@ -531,7 +531,7 @@ channel_t * channel_next_with_digest(channel_t *chan);
|
||||
CHANNEL_IS_OPEN(chan) || \
|
||||
CHANNEL_IS_MAINT(chan))
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
channel_is_in_state(channel_t *chan, channel_state_t state)
|
||||
{
|
||||
return chan->state == state;
|
||||
|
@ -745,7 +745,7 @@ inform_testing_reachability(void)
|
||||
|
||||
/** Return true iff we should send a create_fast cell to start building a given
|
||||
* circuit */
|
||||
static INLINE int
|
||||
static inline int
|
||||
should_use_create_fast_for_circuit(origin_circuit_t *circ)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
|
@ -71,7 +71,7 @@ typedef struct chan_circid_circuit_map_t {
|
||||
/** Helper for hash tables: compare the channel and circuit ID for a and
|
||||
* b, and return less than, equal to, or greater than zero appropriately.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
chan_circid_entries_eq_(chan_circid_circuit_map_t *a,
|
||||
chan_circid_circuit_map_t *b)
|
||||
{
|
||||
@ -80,7 +80,7 @@ chan_circid_entries_eq_(chan_circid_circuit_map_t *a,
|
||||
|
||||
/** Helper: return a hash based on circuit ID and the pointer value of
|
||||
* chan in <b>a</b>. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
chan_circid_entry_hash_(chan_circid_circuit_map_t *a)
|
||||
{
|
||||
/* Try to squeze the siphash input into 8 bytes to save any extra siphash
|
||||
@ -1049,7 +1049,7 @@ circuit_get_by_global_id(uint32_t id)
|
||||
* If <b>found_entry_out</b> is provided, set it to true if we have a
|
||||
* placeholder entry for circid/chan, and leave it unset otherwise.
|
||||
*/
|
||||
static INLINE circuit_t *
|
||||
static inline circuit_t *
|
||||
circuit_get_by_circid_channel_impl(circid_t circ_id, channel_t *chan,
|
||||
int *found_entry_out)
|
||||
{
|
||||
|
@ -186,10 +186,10 @@ struct chanid_circid_muxinfo_t {
|
||||
* Static function declarations
|
||||
*/
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
chanid_circid_entries_eq(chanid_circid_muxinfo_t *a,
|
||||
chanid_circid_muxinfo_t *b);
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
chanid_circid_entry_hash(chanid_circid_muxinfo_t *a);
|
||||
static chanid_circid_muxinfo_t *
|
||||
circuitmux_find_map_entry(circuitmux_t *cmux, circuit_t *circ);
|
||||
@ -199,12 +199,12 @@ circuitmux_make_circuit_active(circuitmux_t *cmux, circuit_t *circ,
|
||||
static void
|
||||
circuitmux_make_circuit_inactive(circuitmux_t *cmux, circuit_t *circ,
|
||||
cell_direction_t direction);
|
||||
static INLINE void
|
||||
static inline void
|
||||
circuitmux_move_active_circ_to_tail(circuitmux_t *cmux, circuit_t *circ,
|
||||
cell_direction_t direction);
|
||||
static INLINE circuit_t **
|
||||
static inline circuit_t **
|
||||
circuitmux_next_active_circ_p(circuitmux_t *cmux, circuit_t *circ);
|
||||
static INLINE circuit_t **
|
||||
static inline circuit_t **
|
||||
circuitmux_prev_active_circ_p(circuitmux_t *cmux, circuit_t *circ);
|
||||
static void circuitmux_assert_okay_pass_one(circuitmux_t *cmux);
|
||||
static void circuitmux_assert_okay_pass_two(circuitmux_t *cmux);
|
||||
@ -226,7 +226,7 @@ static int64_t global_destroy_ctr = 0;
|
||||
* used by circuitmux_notify_xmit_cells().
|
||||
*/
|
||||
|
||||
static INLINE void
|
||||
static inline void
|
||||
circuitmux_move_active_circ_to_tail(circuitmux_t *cmux, circuit_t *circ,
|
||||
cell_direction_t direction)
|
||||
{
|
||||
@ -306,7 +306,7 @@ circuitmux_move_active_circ_to_tail(circuitmux_t *cmux, circuit_t *circ,
|
||||
circuitmux_assert_okay_paranoid(cmux);
|
||||
}
|
||||
|
||||
static INLINE circuit_t **
|
||||
static inline circuit_t **
|
||||
circuitmux_next_active_circ_p(circuitmux_t *cmux, circuit_t *circ)
|
||||
{
|
||||
tor_assert(cmux);
|
||||
@ -319,7 +319,7 @@ circuitmux_next_active_circ_p(circuitmux_t *cmux, circuit_t *circ)
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE circuit_t **
|
||||
static inline circuit_t **
|
||||
circuitmux_prev_active_circ_p(circuitmux_t *cmux, circuit_t *circ)
|
||||
{
|
||||
tor_assert(cmux);
|
||||
@ -338,7 +338,7 @@ circuitmux_prev_active_circ_p(circuitmux_t *cmux, circuit_t *circ)
|
||||
* than zero appropriately.
|
||||
*/
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
chanid_circid_entries_eq(chanid_circid_muxinfo_t *a,
|
||||
chanid_circid_muxinfo_t *b)
|
||||
{
|
||||
@ -349,7 +349,7 @@ chanid_circid_entries_eq(chanid_circid_muxinfo_t *a,
|
||||
* Helper: return a hash based on circuit ID and channel ID in a.
|
||||
*/
|
||||
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
chanid_circid_entry_hash(chanid_circid_muxinfo_t *a)
|
||||
{
|
||||
return (((unsigned int)(a->circ_id) << 8) ^
|
||||
|
@ -115,7 +115,7 @@ TO_EWMA_POL_CIRC_DATA(circuitmux_policy_circ_data_t *);
|
||||
* if the cast is impossible.
|
||||
*/
|
||||
|
||||
static INLINE ewma_policy_data_t *
|
||||
static inline ewma_policy_data_t *
|
||||
TO_EWMA_POL_DATA(circuitmux_policy_data_t *pol)
|
||||
{
|
||||
if (!pol) return NULL;
|
||||
@ -130,7 +130,7 @@ TO_EWMA_POL_DATA(circuitmux_policy_data_t *pol)
|
||||
* and assert if the cast is impossible.
|
||||
*/
|
||||
|
||||
static INLINE ewma_policy_circ_data_t *
|
||||
static inline ewma_policy_circ_data_t *
|
||||
TO_EWMA_POL_CIRC_DATA(circuitmux_policy_circ_data_t *pol)
|
||||
{
|
||||
if (!pol) return NULL;
|
||||
@ -147,7 +147,7 @@ static int compare_cell_ewma_counts(const void *p1, const void *p2);
|
||||
static unsigned cell_ewma_tick_from_timeval(const struct timeval *now,
|
||||
double *remainder_out);
|
||||
static circuit_t * cell_ewma_to_circuit(cell_ewma_t *ewma);
|
||||
static INLINE double get_scale_factor(unsigned from_tick, unsigned to_tick);
|
||||
static inline double get_scale_factor(unsigned from_tick, unsigned to_tick);
|
||||
static cell_ewma_t * pop_first_cell_ewma(ewma_policy_data_t *pol);
|
||||
static void remove_cell_ewma(ewma_policy_data_t *pol, cell_ewma_t *ewma);
|
||||
static void scale_single_cell_ewma(cell_ewma_t *ewma, unsigned cur_tick);
|
||||
@ -644,7 +644,7 @@ cell_ewma_set_scale_factor(const or_options_t *options,
|
||||
|
||||
/** Return the multiplier necessary to convert the value of a cell sent in
|
||||
* 'from_tick' to one sent in 'to_tick'. */
|
||||
static INLINE double
|
||||
static inline double
|
||||
get_scale_factor(unsigned from_tick, unsigned to_tick)
|
||||
{
|
||||
/* This math can wrap around, but that's okay: unsigned overflow is
|
||||
|
@ -146,12 +146,12 @@ static void connection_write_to_buf(const char *string, size_t len,
|
||||
/* DOCDOC connection_write_to_buf_zlib */
|
||||
static void connection_write_to_buf_zlib(const char *string, size_t len,
|
||||
dir_connection_t *conn, int done);
|
||||
static INLINE void
|
||||
static inline void
|
||||
connection_write_to_buf(const char *string, size_t len, connection_t *conn)
|
||||
{
|
||||
connection_write_to_buf_impl_(string, len, conn, 0);
|
||||
}
|
||||
static INLINE void
|
||||
static inline void
|
||||
connection_write_to_buf_zlib(const char *string, size_t len,
|
||||
dir_connection_t *conn, int done)
|
||||
{
|
||||
@ -163,7 +163,7 @@ static size_t connection_get_inbuf_len(connection_t *conn);
|
||||
/* DOCDOC connection_get_outbuf_len */
|
||||
static size_t connection_get_outbuf_len(connection_t *conn);
|
||||
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
connection_get_inbuf_len(connection_t *conn)
|
||||
{
|
||||
IF_HAS_BUFFEREVENT(conn, {
|
||||
@ -173,7 +173,7 @@ connection_get_inbuf_len(connection_t *conn)
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE size_t
|
||||
static inline size_t
|
||||
connection_get_outbuf_len(connection_t *conn)
|
||||
{
|
||||
IF_HAS_BUFFEREVENT(conn, {
|
||||
|
@ -192,7 +192,7 @@ static void flush_queued_events_cb(evutil_socket_t fd, short what, void *arg);
|
||||
|
||||
/** Given a control event code for a message event, return the corresponding
|
||||
* log severity. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
event_to_log_severity(int event)
|
||||
{
|
||||
switch (event) {
|
||||
@ -206,7 +206,7 @@ event_to_log_severity(int event)
|
||||
}
|
||||
|
||||
/** Given a log severity, return the corresponding control event code. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
log_severity_to_event(int severity)
|
||||
{
|
||||
switch (severity) {
|
||||
@ -325,7 +325,7 @@ control_event_is_interesting(int event)
|
||||
/** Append a NUL-terminated string <b>s</b> to the end of
|
||||
* <b>conn</b>-\>outbuf.
|
||||
*/
|
||||
static INLINE void
|
||||
static inline void
|
||||
connection_write_str_to_buf(const char *s, control_connection_t *conn)
|
||||
{
|
||||
size_t len = strlen(s);
|
||||
@ -428,7 +428,7 @@ read_escaped_data(const char *data, size_t len, char **out)
|
||||
/** If the first <b>in_len_max</b> characters in <b>start</b> contain a
|
||||
* double-quoted string with escaped characters, return the length of that
|
||||
* string (as encoded, including quotes). Otherwise return -1. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
get_escaped_string_length(const char *start, size_t in_len_max,
|
||||
int *chars_out)
|
||||
{
|
||||
|
@ -101,7 +101,7 @@ static int download_status_is_ready(download_status_t *dls, time_t now,
|
||||
int max_failures);
|
||||
/** Return true iff, as of <b>now</b>, the resource tracked by <b>dls</b> is
|
||||
* ready to get its download reattempted. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
download_status_is_ready(download_status_t *dls, time_t now,
|
||||
int max_failures)
|
||||
{
|
||||
@ -111,7 +111,7 @@ download_status_is_ready(download_status_t *dls, time_t now,
|
||||
|
||||
static void download_status_mark_impossible(download_status_t *dl);
|
||||
/** Mark <b>dl</b> as never downloadable. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
download_status_mark_impossible(download_status_t *dl)
|
||||
{
|
||||
dl->n_download_failures = IMPOSSIBLE_TO_DOWNLOAD;
|
||||
|
@ -797,7 +797,7 @@ list_single_server_status(const routerinfo_t *desc, int is_live)
|
||||
}
|
||||
|
||||
/* DOCDOC running_long_enough_to_decide_unreachable */
|
||||
static INLINE int
|
||||
static inline int
|
||||
running_long_enough_to_decide_unreachable(void)
|
||||
{
|
||||
return time_of_process_start
|
||||
@ -1302,7 +1302,7 @@ static uint32_t guard_bandwidth_excluding_exits_kb = 0;
|
||||
|
||||
/** Helper: estimate the uptime of a router given its stated uptime and the
|
||||
* amount of time since it last stated its stated uptime. */
|
||||
static INLINE long
|
||||
static inline long
|
||||
real_uptime(const routerinfo_t *router, time_t now)
|
||||
{
|
||||
if (now < router->cache_info.published_on)
|
||||
|
@ -134,7 +134,7 @@ static int dns_is_broken_for_ipv6 = 0;
|
||||
|
||||
/** Function to compare hashed resolves on their addresses; used to
|
||||
* implement hash tables. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
cached_resolves_eq(cached_resolve_t *a, cached_resolve_t *b)
|
||||
{
|
||||
/* make this smarter one day? */
|
||||
@ -143,7 +143,7 @@ cached_resolves_eq(cached_resolve_t *a, cached_resolve_t *b)
|
||||
}
|
||||
|
||||
/** Hash function for cached_resolve objects */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
cached_resolve_hash(cached_resolve_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g((const uint8_t*)a->address, strlen(a->address));
|
||||
@ -1126,7 +1126,7 @@ dns_cancel_pending_resolve,(const char *address))
|
||||
|
||||
/** Return true iff <b>address</b> is one of the addresses we use to verify
|
||||
* that well-known sites aren't being hijacked by our DNS servers. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
is_test_address(const char *address)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
|
@ -21,7 +21,7 @@ struct fp_pair_map_s {
|
||||
*/
|
||||
|
||||
/** Compare fp_pair_entry_t objects by key value. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
fp_pair_map_entries_eq(const fp_pair_map_entry_t *a,
|
||||
const fp_pair_map_entry_t *b)
|
||||
{
|
||||
@ -29,7 +29,7 @@ fp_pair_map_entries_eq(const fp_pair_map_entry_t *a,
|
||||
}
|
||||
|
||||
/** Return a hash value for an fp_pair_entry_t. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
fp_pair_map_entry_hash(const fp_pair_map_entry_t *a)
|
||||
{
|
||||
tor_assert(sizeof(a->key) == DIGEST_LEN*2);
|
||||
|
@ -482,7 +482,7 @@ static HT_HEAD(clientmap, clientmap_entry_t) client_history =
|
||||
HT_INITIALIZER();
|
||||
|
||||
/** Hashtable helper: compute a hash of a clientmap_entry_t. */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
clientmap_entry_hash(const clientmap_entry_t *a)
|
||||
{
|
||||
unsigned h = (unsigned) tor_addr_hash(&a->addr);
|
||||
@ -493,7 +493,7 @@ clientmap_entry_hash(const clientmap_entry_t *a)
|
||||
return h;
|
||||
}
|
||||
/** Hashtable helper: compare two clientmap_entry_t values for equality. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
clientmap_entries_eq(const clientmap_entry_t *a, const clientmap_entry_t *b)
|
||||
{
|
||||
if (strcmp_opt(a->transport_name, b->transport_name))
|
||||
|
@ -490,7 +490,7 @@ reset_accounting(time_t now)
|
||||
}
|
||||
|
||||
/** Return true iff we should save our bandwidth usage to disk. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
time_to_record_bandwidth_usage(time_t now)
|
||||
{
|
||||
/* Note every 600 sec */
|
||||
|
@ -57,14 +57,14 @@ static HT_HEAD(edmap, keypin_ent_st) the_ed_map = HT_INITIALIZER();
|
||||
|
||||
/** Hashtable helper: compare two keypin table entries and return true iff
|
||||
* they have the same RSA key IDs. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
keypin_ents_eq_rsa(const keypin_ent_t *a, const keypin_ent_t *b)
|
||||
{
|
||||
return tor_memeq(a->rsa_id, b->rsa_id, sizeof(a->rsa_id));
|
||||
}
|
||||
|
||||
/** Hashtable helper: hash a keypin table entries based on its RSA key ID */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
keypin_ent_hash_rsa(const keypin_ent_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g(a->rsa_id, sizeof(a->rsa_id));
|
||||
@ -72,14 +72,14 @@ return (unsigned) siphash24g(a->rsa_id, sizeof(a->rsa_id));
|
||||
|
||||
/** Hashtable helper: compare two keypin table entries and return true iff
|
||||
* they have the same ed25519 keys */
|
||||
static INLINE int
|
||||
static inline int
|
||||
keypin_ents_eq_ed(const keypin_ent_t *a, const keypin_ent_t *b)
|
||||
{
|
||||
return tor_memeq(a->ed25519_key, b->ed25519_key, sizeof(a->ed25519_key));
|
||||
}
|
||||
|
||||
/** Hashtable helper: hash a keypin table entries based on its ed25519 key */
|
||||
static INLINE unsigned
|
||||
static inline unsigned
|
||||
keypin_ent_hash_ed(const keypin_ent_t *a)
|
||||
{
|
||||
return (unsigned) siphash24g(a->ed25519_key, sizeof(a->ed25519_key));
|
||||
|
@ -47,14 +47,14 @@ struct microdesc_cache_t {
|
||||
static microdesc_cache_t *get_microdesc_cache_noload(void);
|
||||
|
||||
/** Helper: computes a hash of <b>md</b> to place it in a hash table. */
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
microdesc_hash_(microdesc_t *md)
|
||||
{
|
||||
return (unsigned) siphash24g(md->digest, sizeof(md->digest));
|
||||
}
|
||||
|
||||
/** Helper: compares <b>a</b> and </b> for equality for hash-table purposes. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
microdesc_eq_(microdesc_t *a, microdesc_t *b)
|
||||
{
|
||||
return tor_memeq(a->digest, b->digest, DIGEST256_LEN);
|
||||
|
@ -57,13 +57,13 @@ typedef struct nodelist_t {
|
||||
|
||||
} nodelist_t;
|
||||
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
node_id_hash(const node_t *node)
|
||||
{
|
||||
return (unsigned) siphash24g(node->identity, DIGEST_LEN);
|
||||
}
|
||||
|
||||
static INLINE unsigned int
|
||||
static inline unsigned int
|
||||
node_id_eq(const node_t *node1, const node_t *node2)
|
||||
{
|
||||
return tor_memeq(node1->identity, node2->identity, DIGEST_LEN);
|
||||
@ -291,7 +291,7 @@ nodelist_set_consensus(networkstatus_t *ns)
|
||||
}
|
||||
|
||||
/** Helper: return true iff a node has a usable amount of information*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
node_is_usable(const node_t *node)
|
||||
{
|
||||
return (node->rs) || (node->ri);
|
||||
@ -1021,7 +1021,7 @@ nodelist_refresh_countries(void)
|
||||
|
||||
/** Return true iff router1 and router2 have similar enough network addresses
|
||||
* that we should treat them as being in the same family */
|
||||
static INLINE int
|
||||
static inline int
|
||||
addrs_in_same_network_family(const tor_addr_t *a1,
|
||||
const tor_addr_t *a2)
|
||||
{
|
||||
@ -1045,7 +1045,7 @@ node_nickname_matches(const node_t *node, const char *nickname)
|
||||
}
|
||||
|
||||
/** Return true iff <b>node</b> is named by some nickname in <b>lst</b>. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
node_in_nickname_smartlist(const smartlist_t *lst, const node_t *node)
|
||||
{
|
||||
if (!lst) return 0;
|
||||
|
32
src/or/or.h
32
src/or/or.h
@ -915,18 +915,18 @@ typedef enum {
|
||||
#define VAR_CELL_MAX_HEADER_SIZE 7
|
||||
|
||||
static int get_cell_network_size(int wide_circ_ids);
|
||||
static INLINE int get_cell_network_size(int wide_circ_ids)
|
||||
static inline int get_cell_network_size(int wide_circ_ids)
|
||||
{
|
||||
return wide_circ_ids ? CELL_MAX_NETWORK_SIZE : CELL_MAX_NETWORK_SIZE - 2;
|
||||
}
|
||||
static int get_var_cell_header_size(int wide_circ_ids);
|
||||
static INLINE int get_var_cell_header_size(int wide_circ_ids)
|
||||
static inline int get_var_cell_header_size(int wide_circ_ids)
|
||||
{
|
||||
return wide_circ_ids ? VAR_CELL_MAX_HEADER_SIZE :
|
||||
VAR_CELL_MAX_HEADER_SIZE - 2;
|
||||
}
|
||||
static int get_circ_id_size(int wide_circ_ids);
|
||||
static INLINE int get_circ_id_size(int wide_circ_ids)
|
||||
static inline int get_circ_id_size(int wide_circ_ids)
|
||||
{
|
||||
return wide_circ_ids ? 4 : 2;
|
||||
}
|
||||
@ -1799,38 +1799,38 @@ static control_connection_t *TO_CONTROL_CONN(connection_t *);
|
||||
* invalid. */
|
||||
static listener_connection_t *TO_LISTENER_CONN(connection_t *);
|
||||
|
||||
static INLINE or_connection_t *TO_OR_CONN(connection_t *c)
|
||||
static inline or_connection_t *TO_OR_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == OR_CONNECTION_MAGIC);
|
||||
return DOWNCAST(or_connection_t, c);
|
||||
}
|
||||
static INLINE dir_connection_t *TO_DIR_CONN(connection_t *c)
|
||||
static inline dir_connection_t *TO_DIR_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == DIR_CONNECTION_MAGIC);
|
||||
return DOWNCAST(dir_connection_t, c);
|
||||
}
|
||||
static INLINE edge_connection_t *TO_EDGE_CONN(connection_t *c)
|
||||
static inline edge_connection_t *TO_EDGE_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == EDGE_CONNECTION_MAGIC ||
|
||||
c->magic == ENTRY_CONNECTION_MAGIC);
|
||||
return DOWNCAST(edge_connection_t, c);
|
||||
}
|
||||
static INLINE entry_connection_t *TO_ENTRY_CONN(connection_t *c)
|
||||
static inline entry_connection_t *TO_ENTRY_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == ENTRY_CONNECTION_MAGIC);
|
||||
return (entry_connection_t*) SUBTYPE_P(c, entry_connection_t, edge_.base_);
|
||||
}
|
||||
static INLINE entry_connection_t *EDGE_TO_ENTRY_CONN(edge_connection_t *c)
|
||||
static inline entry_connection_t *EDGE_TO_ENTRY_CONN(edge_connection_t *c)
|
||||
{
|
||||
tor_assert(c->base_.magic == ENTRY_CONNECTION_MAGIC);
|
||||
return (entry_connection_t*) SUBTYPE_P(c, entry_connection_t, edge_);
|
||||
}
|
||||
static INLINE control_connection_t *TO_CONTROL_CONN(connection_t *c)
|
||||
static inline control_connection_t *TO_CONTROL_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == CONTROL_CONNECTION_MAGIC);
|
||||
return DOWNCAST(control_connection_t, c);
|
||||
}
|
||||
static INLINE listener_connection_t *TO_LISTENER_CONN(connection_t *c)
|
||||
static inline listener_connection_t *TO_LISTENER_CONN(connection_t *c)
|
||||
{
|
||||
tor_assert(c->magic == LISTENER_CONNECTION_MAGIC);
|
||||
return DOWNCAST(listener_connection_t, c);
|
||||
@ -3289,27 +3289,27 @@ static const origin_circuit_t *CONST_TO_ORIGIN_CIRCUIT(const circuit_t *);
|
||||
/** Return 1 iff <b>node</b> has Exit flag and no BadExit flag.
|
||||
* Otherwise, return 0.
|
||||
*/
|
||||
static INLINE int node_is_good_exit(const node_t *node)
|
||||
static inline int node_is_good_exit(const node_t *node)
|
||||
{
|
||||
return node->is_exit && ! node->is_bad_exit;
|
||||
}
|
||||
|
||||
static INLINE or_circuit_t *TO_OR_CIRCUIT(circuit_t *x)
|
||||
static inline or_circuit_t *TO_OR_CIRCUIT(circuit_t *x)
|
||||
{
|
||||
tor_assert(x->magic == OR_CIRCUIT_MAGIC);
|
||||
return DOWNCAST(or_circuit_t, x);
|
||||
}
|
||||
static INLINE const or_circuit_t *CONST_TO_OR_CIRCUIT(const circuit_t *x)
|
||||
static inline const or_circuit_t *CONST_TO_OR_CIRCUIT(const circuit_t *x)
|
||||
{
|
||||
tor_assert(x->magic == OR_CIRCUIT_MAGIC);
|
||||
return DOWNCAST(or_circuit_t, x);
|
||||
}
|
||||
static INLINE origin_circuit_t *TO_ORIGIN_CIRCUIT(circuit_t *x)
|
||||
static inline origin_circuit_t *TO_ORIGIN_CIRCUIT(circuit_t *x)
|
||||
{
|
||||
tor_assert(x->magic == ORIGIN_CIRCUIT_MAGIC);
|
||||
return DOWNCAST(origin_circuit_t, x);
|
||||
}
|
||||
static INLINE const origin_circuit_t *CONST_TO_ORIGIN_CIRCUIT(
|
||||
static inline const origin_circuit_t *CONST_TO_ORIGIN_CIRCUIT(
|
||||
const circuit_t *x)
|
||||
{
|
||||
tor_assert(x->magic == ORIGIN_CIRCUIT_MAGIC);
|
||||
@ -4398,7 +4398,7 @@ typedef struct {
|
||||
/** Change the next_write time of <b>state</b> to <b>when</b>, unless the
|
||||
* state is already scheduled to be written to disk earlier than <b>when</b>.
|
||||
*/
|
||||
static INLINE void or_state_mark_dirty(or_state_t *state, time_t when)
|
||||
static inline void or_state_mark_dirty(or_state_t *state, time_t when)
|
||||
{
|
||||
if (state->next_write > when)
|
||||
state->next_write = when;
|
||||
|
@ -628,7 +628,7 @@ typedef struct policy_map_ent_t {
|
||||
static HT_HEAD(policy_map, policy_map_ent_t) policy_root = HT_INITIALIZER();
|
||||
|
||||
/** Return true iff a and b are equal. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
policy_eq(policy_map_ent_t *a, policy_map_ent_t *b)
|
||||
{
|
||||
return cmp_single_addr_policy(a->policy, b->policy) == 0;
|
||||
|
@ -2256,7 +2256,7 @@ circuit_consider_sending_sendme(circuit_t *circ, crypt_path_t *layer_hint)
|
||||
static size_t total_cells_allocated = 0;
|
||||
|
||||
/** Release storage held by <b>cell</b>. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
packed_cell_free_unchecked(packed_cell_t *cell)
|
||||
{
|
||||
--total_cells_allocated;
|
||||
@ -2300,7 +2300,7 @@ dump_cell_pool_usage(int severity)
|
||||
}
|
||||
|
||||
/** Allocate a new copy of packed <b>cell</b>. */
|
||||
static INLINE packed_cell_t *
|
||||
static inline packed_cell_t *
|
||||
packed_cell_copy(const cell_t *cell, int wide_circ_ids)
|
||||
{
|
||||
packed_cell_t *c = packed_cell_new();
|
||||
|
@ -19,7 +19,7 @@ typedef enum rend_intro_point_failure_t {
|
||||
} rend_intro_point_failure_t;
|
||||
|
||||
/** Free all storage associated with <b>data</b> */
|
||||
static INLINE void
|
||||
static inline void
|
||||
rend_data_free(rend_data_t *data)
|
||||
{
|
||||
if (!data) {
|
||||
|
@ -920,7 +920,7 @@ parse_possibly_bad_iso_time(const char *s, time_t *time_out)
|
||||
* that's about as much before <b>now</b> as <b>t</b> was before
|
||||
* <b>stored_at</b>.
|
||||
*/
|
||||
static INLINE time_t
|
||||
static inline time_t
|
||||
correct_time(time_t t, time_t now, time_t stored_at, time_t started_measuring)
|
||||
{
|
||||
if (t < started_measuring - 24*60*60*365)
|
||||
@ -1190,7 +1190,7 @@ commit_max(bw_array_t *b)
|
||||
}
|
||||
|
||||
/** Shift the current observation time of <b>b</b> forward by one second. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
advance_obs(bw_array_t *b)
|
||||
{
|
||||
int nextidx;
|
||||
@ -1216,7 +1216,7 @@ advance_obs(bw_array_t *b)
|
||||
|
||||
/** Add <b>n</b> bytes to the number of bytes in <b>b</b> for second
|
||||
* <b>when</b>. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
add_obs(bw_array_t *b, time_t when, uint64_t n)
|
||||
{
|
||||
if (when < b->cur_obs_time)
|
||||
|
@ -278,7 +278,7 @@ trusted_dirs_reload_certs(void)
|
||||
|
||||
/** Helper: return true iff we already have loaded the exact cert
|
||||
* <b>cert</b>. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
already_have_cert(authority_cert_t *cert)
|
||||
{
|
||||
cert_list_t *cl = get_cert_list(cert->cache_info.identity_digest);
|
||||
@ -985,7 +985,7 @@ router_should_rebuild_store(desc_store_t *store)
|
||||
|
||||
/** Return the desc_store_t in <b>rl</b> that should be used to store
|
||||
* <b>sd</b>. */
|
||||
static INLINE desc_store_t *
|
||||
static inline desc_store_t *
|
||||
desc_get_store(routerlist_t *rl, const signed_descriptor_t *sd)
|
||||
{
|
||||
if (sd->is_extrainfo)
|
||||
@ -1897,7 +1897,7 @@ scale_array_elements_to_u64(u64_dbl_t *entries, int n_entries,
|
||||
#if SIZEOF_VOID_P == 8
|
||||
#define gt_i64_timei(a,b) ((a) > (b))
|
||||
#else
|
||||
static INLINE int
|
||||
static inline int
|
||||
gt_i64_timei(uint64_t a, uint64_t b)
|
||||
{
|
||||
int64_t diff = (int64_t) (b - a);
|
||||
@ -1975,7 +1975,7 @@ bridge_get_advertised_bandwidth_bounded(routerinfo_t *router)
|
||||
|
||||
/** Return bw*1000, unless bw*1000 would overflow, in which case return
|
||||
* INT32_MAX. */
|
||||
static INLINE int32_t
|
||||
static inline int32_t
|
||||
kb_to_bytes(uint32_t bw)
|
||||
{
|
||||
return (bw > (INT32_MAX/1000)) ? INT32_MAX : bw*1000;
|
||||
@ -2790,7 +2790,7 @@ dump_routerlist_mem_usage(int severity)
|
||||
* in <b>sl</b> at position <b>idx</b>. Otherwise, search <b>sl</b> for
|
||||
* <b>ri</b>. Return the index of <b>ri</b> in <b>sl</b>, or -1 if <b>ri</b>
|
||||
* is not in <b>sl</b>. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
routerlist_find_elt_(smartlist_t *sl, void *ri, int idx)
|
||||
{
|
||||
if (idx < 0) {
|
||||
|
@ -109,7 +109,7 @@ static int WRA_NEVER_DOWNLOADABLE(was_router_added_t s);
|
||||
* was added. It might still be necessary to check whether the descriptor
|
||||
* generator should be notified.
|
||||
*/
|
||||
static INLINE int
|
||||
static inline int
|
||||
WRA_WAS_ADDED(was_router_added_t s) {
|
||||
return s == ROUTER_ADDED_SUCCESSFULLY || s == ROUTER_ADDED_NOTIFY_GENERATOR;
|
||||
}
|
||||
@ -120,7 +120,7 @@ WRA_WAS_ADDED(was_router_added_t s) {
|
||||
* - it was outdated.
|
||||
* - its certificates were expired.
|
||||
*/
|
||||
static INLINE int WRA_WAS_OUTDATED(was_router_added_t s)
|
||||
static inline int WRA_WAS_OUTDATED(was_router_added_t s)
|
||||
{
|
||||
return (s == ROUTER_WAS_TOO_OLD ||
|
||||
s == ROUTER_IS_ALREADY_KNOWN ||
|
||||
@ -130,13 +130,13 @@ static INLINE int WRA_WAS_OUTDATED(was_router_added_t s)
|
||||
}
|
||||
/** Return true iff the outcome code in <b>s</b> indicates that the descriptor
|
||||
* was flat-out rejected. */
|
||||
static INLINE int WRA_WAS_REJECTED(was_router_added_t s)
|
||||
static inline int WRA_WAS_REJECTED(was_router_added_t s)
|
||||
{
|
||||
return (s == ROUTER_AUTHDIR_REJECTS);
|
||||
}
|
||||
/** Return true iff the outcome code in <b>s</b> indicates that the descriptor
|
||||
* was flat-out rejected. */
|
||||
static INLINE int WRA_NEVER_DOWNLOADABLE(was_router_added_t s)
|
||||
static inline int WRA_NEVER_DOWNLOADABLE(was_router_added_t s)
|
||||
{
|
||||
return (s == ROUTER_AUTHDIR_REJECTS ||
|
||||
s == ROUTER_BAD_EI ||
|
||||
|
@ -2061,7 +2061,7 @@ authority_cert_parse_from_string(const char *s, const char **end_of_string)
|
||||
* object (starting with "r " at the start of a line). If none is found,
|
||||
* return the start of the directory footer, or the next directory signature.
|
||||
* If none is found, return the end of the string. */
|
||||
static INLINE const char *
|
||||
static inline const char *
|
||||
find_start_of_next_routerstatus(const char *s)
|
||||
{
|
||||
const char *eos, *footer, *sig;
|
||||
@ -3930,7 +3930,7 @@ token_clear(directory_token_t *tok)
|
||||
* Return <b>tok</b> on success, or a new ERR_ token if the token didn't
|
||||
* conform to the syntax we wanted.
|
||||
**/
|
||||
static INLINE directory_token_t *
|
||||
static inline directory_token_t *
|
||||
token_check_object(memarea_t *area, const char *kwd,
|
||||
directory_token_t *tok, obj_syntax o_syn)
|
||||
{
|
||||
@ -3995,7 +3995,7 @@ token_check_object(memarea_t *area, const char *kwd,
|
||||
* number of parsed elements into the n_args field of <b>tok</b>. Allocate
|
||||
* all storage in <b>area</b>. Return the number of arguments parsed, or
|
||||
* return -1 if there was an insanely high number of arguments. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
get_token_arguments(memarea_t *area, directory_token_t *tok,
|
||||
const char *s, const char *eol)
|
||||
{
|
||||
|
@ -105,7 +105,7 @@
|
||||
static process_environment_t *
|
||||
create_managed_proxy_environment(const managed_proxy_t *mp);
|
||||
|
||||
static INLINE int proxy_configuration_finished(const managed_proxy_t *mp);
|
||||
static inline int proxy_configuration_finished(const managed_proxy_t *mp);
|
||||
|
||||
static void handle_finished_proxy(managed_proxy_t *mp);
|
||||
static void parse_method_error(const char *line, int is_server_method);
|
||||
@ -713,7 +713,7 @@ register_client_proxy(const managed_proxy_t *mp)
|
||||
}
|
||||
|
||||
/** Register the transports of managed proxy <b>mp</b>. */
|
||||
static INLINE void
|
||||
static inline void
|
||||
register_proxy(const managed_proxy_t *mp)
|
||||
{
|
||||
if (mp->is_server)
|
||||
@ -828,7 +828,7 @@ handle_finished_proxy(managed_proxy_t *mp)
|
||||
|
||||
/** Return true if the configuration of the managed proxy <b>mp</b> is
|
||||
finished. */
|
||||
static INLINE int
|
||||
static inline int
|
||||
proxy_configuration_finished(const managed_proxy_t *mp)
|
||||
{
|
||||
return (mp->conf_state == PT_PROTO_CONFIGURED ||
|
||||
|
@ -62,7 +62,7 @@ fill_a_buffer_nothing(void)
|
||||
return sum;
|
||||
}
|
||||
|
||||
static INLINE int
|
||||
static inline int
|
||||
vmemeq(volatile char *a, const char *b, size_t n)
|
||||
{
|
||||
while (n--) {
|
||||
|
@ -123,7 +123,7 @@ test_channeltls_num_bytes_queued(void *arg)
|
||||
/*
|
||||
* Next, we have to test ch->num_bytes_queued, which is
|
||||
* channel_tls_num_bytes_queued_method. We can't mock
|
||||
* connection_get_outbuf_len() directly because it's static INLINE
|
||||
* connection_get_outbuf_len() directly because it's static inline
|
||||
* in connection.h, but we can mock buf_datalen(). Note that
|
||||
* if bufferevents ever work, this will break with them enabled.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user