Module Name: src
Committed By: christos
Date: Mon Jan 27 02:16:05 UTC 2025
Modified Files:
src/external/mpl/bind/dist/lib/dns: qp.c xfrin.c zone.c
src/external/mpl/bind/dist/lib/isc: histo.c
src/external/mpl/bind/dist/lib/isc/include/isc: types.h
src/external/mpl/bind/dist/lib/ns: client.c
src/external/mpl/bind/dist/lib/ns/include/ns: client.h
Log Message:
Fix the _ILP32 build.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/mpl/bind/dist/lib/dns/qp.c
cvs rdiff -u -r1.16 -r1.17 src/external/mpl/bind/dist/lib/dns/xfrin.c
cvs rdiff -u -r1.21 -r1.22 src/external/mpl/bind/dist/lib/dns/zone.c
cvs rdiff -u -r1.2 -r1.3 src/external/mpl/bind/dist/lib/isc/histo.c
cvs rdiff -u -r1.13 -r1.14 \
src/external/mpl/bind/dist/lib/isc/include/isc/types.h
cvs rdiff -u -r1.22 -r1.23 src/external/mpl/bind/dist/lib/ns/client.c
cvs rdiff -u -r1.18 -r1.19 \
src/external/mpl/bind/dist/lib/ns/include/ns/client.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/mpl/bind/dist/lib/dns/qp.c
diff -u src/external/mpl/bind/dist/lib/dns/qp.c:1.2 src/external/mpl/bind/dist/lib/dns/qp.c:1.3
--- src/external/mpl/bind/dist/lib/dns/qp.c:1.2 Sun Jan 26 11:25:24 2025
+++ src/external/mpl/bind/dist/lib/dns/qp.c Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: qp.c,v 1.2 2025/01/26 16:25:24 christos Exp $ */
+/* $NetBSD: qp.c,v 1.3 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -63,9 +63,33 @@
* XXXFANF for now we're logging GC times, but ideally we should
* accumulate stats more quietly and report via the statschannel
*/
+#ifdef _LP64
static atomic_uint_fast64_t compact_time;
static atomic_uint_fast64_t recycle_time;
static atomic_uint_fast64_t rollback_time;
+#define ISC_QP_ADD(v, a) atomic_fetch_add_relaxed(&(v), (a))
+#define ISC_QP_GET(v) atomic_load_relaxed(v)
+#else
+static uint64_t compact_time;
+static uint64_t recycle_time;
+static uint64_t rollback_time;
+static isc_mutex_t qp_mutex = PTHREAD_MUTEX_INITIALIZER;
+#define ISC_QP_ADD(v, a) \
+ ({ \
+ isc_mutex_lock(&qp_mutex); \
+ uint64_t x = (v) + (a); \
+ isc_mutex_unlock(&qp_mutex); \
+ x; \
+ })
+#define ISC_QP_GET(v) \
+ ({ \
+ isc_mutex_lock(&qp_mutex); \
+ uint64_t x = (v); \
+ isc_mutex_unlock(&qp_mutex); \
+ x; \
+ })
+#endif
+
/* for LOG_STATS() format strings */
#define PRItime " %" PRIu64 " ns "
@@ -680,7 +704,7 @@ recycle(dns_qp_t *qp) {
}
isc_nanosecs_t time = isc_time_monotonic() - start;
- atomic_fetch_add_relaxed(&recycle_time, time);
+ ISC_QP_ADD(recycle_time, time);
if (free > 0) {
LOG_STATS("qp recycle" PRItime "free %u chunks", time, free);
@@ -723,7 +747,7 @@ reclaim_chunks_cb(struct rcu_head *arg)
STRUCT_FLEX_SIZE(rcuctx, chunk, rcuctx->count));
isc_nanosecs_t time = isc_time_monotonic() - start;
- recycle_time += time;
+ ISC_QP_ADD(recycle_time, time);
if (free > 0) {
LOG_STATS("qp reclaim" PRItime "free %u chunks", time, free);
@@ -816,7 +840,7 @@ marksweep_chunks(dns_qpmulti_t *multi) {
}
isc_nanosecs_t time = isc_time_monotonic() - start;
- recycle_time += time;
+ ISC_QP_ADD(recycle_time, time);
if (free > 0) {
LOG_STATS("qp marksweep" PRItime "free %u chunks", time, free);
@@ -945,7 +969,7 @@ compact(dns_qp_t *qp) {
qp->compact_all = false;
isc_nanosecs_t time = isc_time_monotonic() - start;
- atomic_fetch_add_relaxed(&compact_time, time);
+ ISC_QP_ADD(compact_time, time);
LOG_STATS("qp compact" PRItime
"leaf %u live %u used %u free %u hold %u",
@@ -1073,9 +1097,9 @@ dns_qpmulti_memusage(dns_qpmulti_t *mult
void
dns_qp_gctime(isc_nanosecs_t *compact_p, isc_nanosecs_t *recycle_p,
isc_nanosecs_t *rollback_p) {
- *compact_p = atomic_load_relaxed(&compact_time);
- *recycle_p = atomic_load_relaxed(&recycle_time);
- *rollback_p = atomic_load_relaxed(&rollback_time);
+ *compact_p = ISC_QP_GET(compact_time);
+ *recycle_p = ISC_QP_GET(recycle_time);
+ *rollback_p = ISC_QP_GET(rollback_time);
}
/***********************************************************************
@@ -1300,7 +1324,7 @@ dns_qpmulti_rollback(dns_qpmulti_t *mult
INSIST(multi->rollback == NULL);
isc_nanosecs_t time = isc_time_monotonic() - start;
- atomic_fetch_add_relaxed(&rollback_time, time);
+ ISC_QP_ADD(rollback_time, time);
LOG_STATS("qp rollback" PRItime "free %u chunks", time, free);
Index: src/external/mpl/bind/dist/lib/dns/xfrin.c
diff -u src/external/mpl/bind/dist/lib/dns/xfrin.c:1.16 src/external/mpl/bind/dist/lib/dns/xfrin.c:1.17
--- src/external/mpl/bind/dist/lib/dns/xfrin.c:1.16 Sun Jan 26 11:25:26 2025
+++ src/external/mpl/bind/dist/lib/dns/xfrin.c Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: xfrin.c,v 1.16 2025/01/26 16:25:26 christos Exp $ */
+/* $NetBSD: xfrin.c,v 1.17 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -84,6 +84,34 @@ typedef enum {
XFRST_AXFR_END
} xfrin_state_t;
+#ifdef _LP64
+#define ISC_XFRIN_LOAD(a, t) atomic_load_relaxed(a)
+#define ISC_XFRIN_STORE(a, b) atomic_store_relaxed(a, b)
+#define ISC_XFRIN_ADD(a, b) atomic_fetch_add_relaxed(a, b)
+#else
+static isc_mutex_t xfrin_lock = PTHREAD_MUTEX_INITIALIZER;
+#define ISC_XFRIN_LOAD(a, t) \
+ ({ \
+ isc_mutex_lock(&xfrin_lock); \
+ t x = *(a); \
+ isc_mutex_unlock(&xfrin_lock); \
+ x; \
+ })
+#define ISC_XFRIN_STORE(a, b) \
+ ({ \
+ isc_mutex_lock(&xfrin_lock); \
+ *(a) = (b); \
+ isc_mutex_unlock(&xfrin_lock); \
+ })
+#define ISC_XFRIN_ADD(a, b) \
+ ({ \
+ isc_mutex_lock(&xfrin_lock); \
+ *(a) += (b); \
+ isc_mutex_unlock(&xfrin_lock); \
+ })
+#endif
+
+
/*%
* Incoming zone transfer context.
*/
@@ -153,8 +181,13 @@ struct dns_xfrin {
*/
atomic_uint nmsg; /*%< Number of messages recvd */
atomic_uint nrecs; /*%< Number of records recvd */
+#ifdef _LP64
atomic_uint_fast64_t nbytes; /*%< Number of bytes received */
_Atomic(isc_time_t) start; /*%< Start time of the transfer */
+#else
+ atomic_uint_fast32_t nbytes; /*%< Number of bytes received */
+ isc_time_t start; /*%< Start time of the transfer */
+#endif
_Atomic(dns_transport_type_t) soa_transport_type;
atomic_uint_fast32_t end_serial;
@@ -967,7 +1000,7 @@ isc_time_t
dns_xfrin_getstarttime(dns_xfrin_t *xfr) {
REQUIRE(VALID_XFRIN(xfr));
- return atomic_load_relaxed(&xfr->start);
+ return ISC_XFRIN_LOAD(&xfr->start, isc_time_t);
}
void
@@ -1030,7 +1063,7 @@ dns_xfrin_getstats(dns_xfrin_t *xfr, uns
SET_IF_NOT_NULL(nmsgp, atomic_load_relaxed(&xfr->nmsg));
SET_IF_NOT_NULL(nrecsp, atomic_load_relaxed(&xfr->nrecs));
- SET_IF_NOT_NULL(nbytesp, atomic_load_relaxed(&xfr->nbytes));
+ SET_IF_NOT_NULL(nbytesp, ISC_XFRIN_LOAD(&xfr->nbytes, uint64_t));
}
const isc_sockaddr_t *
@@ -1218,7 +1251,7 @@ xfrin_create(isc_mem_t *mctx, dns_zone_t
atomic_init(&xfr->state, XFRST_ZONEXFRREQUEST);
}
- atomic_init(&xfr->start, isc_time_now());
+ ISC_XFRIN_STORE(&xfr->start, isc_time_now());
if (tsigkey != NULL) {
dns_tsigkey_attach(tsigkey, &xfr->tsigkey);
@@ -1588,8 +1621,8 @@ xfrin_send_request(dns_xfrin_t *xfr) {
atomic_store_relaxed(&xfr->nmsg, 0);
atomic_store_relaxed(&xfr->nrecs, 0);
- atomic_store_relaxed(&xfr->nbytes, 0);
- atomic_store_relaxed(&xfr->start, isc_time_now());
+ ISC_XFRIN_STORE(&xfr->nbytes, 0);
+ ISC_XFRIN_STORE(&xfr->start, isc_time_now());
msg->id = xfr->id;
if (xfr->tsigctx != NULL) {
@@ -1967,7 +2000,7 @@ xfrin_recv_done(isc_result_t result, isc
* Update the number of messages and bytes received.
*/
atomic_fetch_add_relaxed(&xfr->nmsg, 1);
- atomic_fetch_add_relaxed(&xfr->nbytes, buffer.used);
+ ISC_XFRIN_ADD(&xfr->nbytes, buffer.used);
/*
* Take the context back.
@@ -2050,12 +2083,12 @@ xfrin_destroy(dns_xfrin_t *xfr) {
* Calculate the length of time the transfer took,
* and print a log message with the bytes and rate.
*/
- isc_time_t start = atomic_load_relaxed(&xfr->start);
+ isc_time_t start = ISC_XFRIN_LOAD(&xfr->start, isc_time_t);
msecs = isc_time_microdiff(&now, &start) / 1000;
if (msecs == 0) {
msecs = 1;
}
- persec = (atomic_load_relaxed(&xfr->nbytes) * 1000) / msecs;
+ persec = (ISC_XFRIN_LOAD(&xfr->nbytes, uint64_t) * 1000) / msecs;
if (xfr->expireoptset) {
sep = ", expire option ";
@@ -2068,7 +2101,7 @@ xfrin_destroy(dns_xfrin_t *xfr) {
"%u.%03u secs (%u bytes/sec) (serial %" PRIuFAST32 "%s%s)",
atomic_load_relaxed(&xfr->nmsg),
atomic_load_relaxed(&xfr->nrecs),
- atomic_load_relaxed(&xfr->nbytes),
+ ISC_XFRIN_LOAD(&xfr->nbytes, uint64_t),
(unsigned int)(msecs / 1000), (unsigned int)(msecs % 1000),
(unsigned int)persec, atomic_load_relaxed(&xfr->end_serial),
sep, expireopt);
Index: src/external/mpl/bind/dist/lib/dns/zone.c
diff -u src/external/mpl/bind/dist/lib/dns/zone.c:1.21 src/external/mpl/bind/dist/lib/dns/zone.c:1.22
--- src/external/mpl/bind/dist/lib/dns/zone.c:1.21 Sun Jan 26 11:25:26 2025
+++ src/external/mpl/bind/dist/lib/dns/zone.c Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: zone.c,v 1.21 2025/01/26 16:25:26 christos Exp $ */
+/* $NetBSD: zone.c,v 1.22 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -260,6 +260,9 @@ struct dns_zone {
/* Unlocked */
unsigned int magic;
isc_mutex_t lock;
+#ifndef _LP64
+ isc_mutex_t atomic_lock;
+#endif
#ifdef DNS_ZONE_CHECKLOCK
bool locked;
#endif /* ifdef DNS_ZONE_CHECKLOCK */
@@ -289,8 +292,13 @@ struct dns_zone {
int32_t journalsize;
dns_rdataclass_t rdclass;
dns_zonetype_t type;
+#ifdef _LP64
atomic_uint_fast64_t flags;
atomic_uint_fast64_t options;
+#else
+ uint64_t flags;
+ uint64_t options;
+#endif
unsigned int db_argc;
char **db_argv;
isc_time_t expiretime;
@@ -431,7 +439,11 @@ struct dns_zone {
/*%
* Autosigning/key-maintenance options
*/
+#ifdef _LP64
atomic_uint_fast64_t keyopts;
+#else
+ uint64_t keyopts;
+#endif
/*%
* True if added by "rndc addzone"
@@ -518,10 +530,38 @@ struct dns_zone {
(_z)->diff = (d); \
(_z)->offline = false; \
} while (0)
+#ifdef _LP64
+#define ISC_ZONE_GET(z, f) atomic_load_relaxed(&(z)->f)
+#define ISC_ZONE_SET(z, f, o) atomic_fetch_or(&(z)->f, (o))
+#define DNS_ZONE_CLR(z, f, o) atomic_fetch_and(&(z)->f, ~(o))
+#else
+#define ISC_ZONE_GET(z, f) \
+ ({ \
+ isc_mutex_lock(&(z)->atomic_lock); \
+ uint64_t x = (z)->f; \
+ isc_mutex_unlock(&(z)->atomic_lock); \
+ x; \
+ })
+#define ISC_ZONE_SET(z, f, o) \
+ ({ \
+ isc_mutex_lock(&(z)->atomic_lock); \
+ uint64_t x = ((z)->f | (o)); \
+ isc_mutex_unlock(&(z)->atomic_lock); \
+ x; \
+ })
+#define ISC_ZONE_CLR(z, f, o) \
+ ({ \
+ isc_mutex_lock(&(z)->atomic_lock); \
+ uint64_t x = ((z)->f & ~(o)); \
+ isc_mutex_unlock(&(z)->atomic_lock); \
+ x; \
+ })
+#endif
+#define ISC_ZONE_TEST(z, f, o) ((ISC_ZONE_GET(z, f) & (o)) != 0)
-#define DNS_ZONE_FLAG(z, f) ((atomic_load_relaxed(&(z)->flags) & (f)) != 0)
-#define DNS_ZONE_SETFLAG(z, f) atomic_fetch_or(&(z)->flags, (f))
-#define DNS_ZONE_CLRFLAG(z, f) atomic_fetch_and(&(z)->flags, ~(f))
+#define DNS_ZONE_FLAG(z, f) ISC_ZONE_TEST(z, flags, f)
+#define DNS_ZONE_SETFLAG(z, f) ISC_ZONE_SET(z, flags, f)
+#define DNS_ZONE_CLRFLAG(z, f) ISC_ZONE_CLR(z, flags, f)
typedef enum {
DNS_ZONEFLG_REFRESH = 0x00000001U, /*%< refresh check in progress */
DNS_ZONEFLG_NEEDDUMP = 0x00000002U, /*%< zone need consolidation */
@@ -571,14 +611,14 @@ typedef enum {
DNS_ZONEFLG___MAX = UINT64_MAX, /* trick to make the ENUM 64-bit wide */
} dns_zoneflg_t;
-#define DNS_ZONE_OPTION(z, o) ((atomic_load_relaxed(&(z)->options) & (o)) != 0)
-#define DNS_ZONE_SETOPTION(z, o) atomic_fetch_or(&(z)->options, (o))
-#define DNS_ZONE_CLROPTION(z, o) atomic_fetch_and(&(z)->options, ~(o))
-
-#define DNS_ZONEKEY_OPTION(z, o) \
- ((atomic_load_relaxed(&(z)->keyopts) & (o)) != 0)
-#define DNS_ZONEKEY_SETOPTION(z, o) atomic_fetch_or(&(z)->keyopts, (o))
-#define DNS_ZONEKEY_CLROPTION(z, o) atomic_fetch_and(&(z)->keyopts, ~(o))
+
+#define DNS_ZONE_OPTION(z, o) ISC_ZONE_TEST(z, options, o)
+#define DNS_ZONE_SETOPTION(z, o) ISC_ZONE_SET(z, options, o)
+#define DNS_ZONE_CLROPTION(z, o) ISC_ZONE_CLR(z, options, o)
+#define DNS_ZONEKEY_OPTION(z, o) ISC_ZONE_TEST(z, keyopts, o)
+#define DNS_ZONEKEY_SETOPTION(z, o) ISC_ZONE_SET(z, keyopts, o)
+#define DNS_ZONEKEY_CLROPTION(z, o) ISC_ZONE_CLR(z, keyopts, o)
+
/* Flags for zone_load() */
typedef enum {
@@ -1166,6 +1206,9 @@ dns_zone_create(dns_zone_t **zonep, isc_
isc_mem_attach(mctx, &zone->mctx);
isc_mutex_init(&zone->lock);
+#ifndef _LP64
+ isc_mutex_init(&zone->atomic_lock);
+#endif
ZONEDB_INITLOCK(&zone->dblock);
isc_refcount_init(&zone->references, 1);
@@ -1374,6 +1417,9 @@ zone_free(dns_zone_t *zone) {
/* last stuff */
ZONEDB_DESTROYLOCK(&zone->dblock);
isc_mutex_destroy(&zone->lock);
+#ifndef _LP64
+ isc_mutex_destroy(&zone->atomic_lock);
+#endif
zone->magic = 0;
isc_mem_putanddetach(&zone->mctx, zone, sizeof(*zone));
}
@@ -5803,7 +5849,7 @@ dns_zoneopt_t
dns_zone_getoptions(dns_zone_t *zone) {
REQUIRE(DNS_ZONE_VALID(zone));
- return atomic_load_relaxed(&zone->options);
+ return ISC_ZONE_GET(zone, options);
}
void
@@ -5821,7 +5867,7 @@ unsigned int
dns_zone_getkeyopts(dns_zone_t *zone) {
REQUIRE(DNS_ZONE_VALID(zone));
- return atomic_load_relaxed(&zone->keyopts);
+ return ISC_ZONE_GET(zone, keyopts);
}
isc_result_t
@@ -11431,7 +11477,7 @@ zone_refresh(dns_zone_t *zone) {
* in progress at a time.
*/
- oldflags = atomic_load(&zone->flags);
+ oldflags = ISC_ZONE_GET(zone, flags);
if (dns_remote_addresses(&zone->primaries) == NULL) {
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NOPRIMARIES);
if ((oldflags & DNS_ZONEFLG_NOPRIMARIES) == 0) {
Index: src/external/mpl/bind/dist/lib/isc/histo.c
diff -u src/external/mpl/bind/dist/lib/isc/histo.c:1.2 src/external/mpl/bind/dist/lib/isc/histo.c:1.3
--- src/external/mpl/bind/dist/lib/isc/histo.c:1.2 Sun Jan 26 11:25:37 2025
+++ src/external/mpl/bind/dist/lib/isc/histo.c Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: histo.c,v 1.2 2025/01/26 16:25:37 christos Exp $ */
+/* $NetBSD: histo.c,v 1.3 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -62,7 +62,11 @@
#define MAXCHUNK(hg) EXPONENTS(hg)
#define CHUNKSIZE(hg) MANTISSAS(hg)
+#ifdef _LP64
typedef atomic_uint_fast64_t hg_bucket_t;
+#else
+typedef atomic_uint_fast32_t hg_bucket_t;
+#endif
typedef atomic_ptr(hg_bucket_t) hg_chunk_t;
struct isc_histo {
Index: src/external/mpl/bind/dist/lib/isc/include/isc/types.h
diff -u src/external/mpl/bind/dist/lib/isc/include/isc/types.h:1.13 src/external/mpl/bind/dist/lib/isc/include/isc/types.h:1.14
--- src/external/mpl/bind/dist/lib/isc/include/isc/types.h:1.13 Sun Jan 26 11:25:43 2025
+++ src/external/mpl/bind/dist/lib/isc/include/isc/types.h Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: types.h,v 1.13 2025/01/26 16:25:43 christos Exp $ */
+/* $NetBSD: types.h,v 1.14 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -74,8 +74,13 @@ typedef struct isc_sockaddr isc_sockadd
typedef ISC_LIST(isc_sockaddr_t) isc_sockaddrlist_t; /*%< Socket Address List
* */
typedef struct isc_stats isc_stats_t; /*%< Statistics */
+#ifdef _LP64
typedef int_fast64_t isc_statscounter_t;
typedef atomic_int_fast64_t isc_atomic_statscounter_t;
+#else
+typedef int_fast32_t isc_statscounter_t;
+typedef atomic_int_fast32_t isc_atomic_statscounter_t;
+#endif
typedef struct isc_symtab isc_symtab_t; /*%< Symbol Table */
typedef struct isc_textregion isc_textregion_t; /*%< Text Region */
typedef struct isc_time isc_time_t; /*%< Time */
Index: src/external/mpl/bind/dist/lib/ns/client.c
diff -u src/external/mpl/bind/dist/lib/ns/client.c:1.22 src/external/mpl/bind/dist/lib/ns/client.c:1.23
--- src/external/mpl/bind/dist/lib/ns/client.c:1.22 Sun Jan 26 11:25:45 2025
+++ src/external/mpl/bind/dist/lib/ns/client.c Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: client.c,v 1.22 2025/01/26 16:25:45 christos Exp $ */
+/* $NetBSD: client.c,v 1.23 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -118,7 +118,11 @@
#define NS_CLIENT_DROPPORT 1
#endif /* ifndef NS_CLIENT_DROPPORT */
+#ifdef _LP64
atomic_uint_fast64_t ns_client_requests = 0;
+#else
+atomic_uint_fast32_t ns_client_requests = 0;
+#endif
static atomic_uint_fast32_t last_sigchecks_quota_log = 0;
Index: src/external/mpl/bind/dist/lib/ns/include/ns/client.h
diff -u src/external/mpl/bind/dist/lib/ns/include/ns/client.h:1.18 src/external/mpl/bind/dist/lib/ns/include/ns/client.h:1.19
--- src/external/mpl/bind/dist/lib/ns/include/ns/client.h:1.18 Sun Jan 26 11:25:46 2025
+++ src/external/mpl/bind/dist/lib/ns/include/ns/client.h Sun Jan 26 21:16:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: client.h,v 1.18 2025/01/26 16:25:46 christos Exp $ */
+/* $NetBSD: client.h,v 1.19 2025/01/27 02:16:05 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -268,7 +268,11 @@ struct ns_client {
*/
#define NS_FAILCACHE_CD 0x01
+#ifdef _LP64
extern atomic_uint_fast64_t ns_client_requests;
+#else
+extern atomic_uint_fast32_t ns_client_requests;
+#endif
/***
*** Functions