*/
#define RANGE(a, min, max) (((a) < (min)) ? (min) : ((a) < (max) ? (a) : (max)))
-#define NSEC3REMOVE(x) (((x)&DNS_NSEC3FLAG_REMOVE) != 0)
+#define NSEC3REMOVE(x) (((x) & DNS_NSEC3FLAG_REMOVE) != 0)
/*%
* Key flags
return (result);
}
-#define SET_IF_NOT_NULL(obj, val) \
- if (obj != NULL) { \
- *obj = val; \
- }
-
#define SET_SOA_VALUES(soattl_v, serial_v, refresh_v, retry_v, expire_v, \
minimum_v) \
{ \
#include <isc/mem.h>
#include <isc/tid.h>
-/*
- * XXXFANF this should probably be in <isc/util.h> too
- */
-#define OUTARG(ptr, val) \
- ({ \
- if ((ptr) != NULL) { \
- *(ptr) = (val); \
- } \
- })
-
#define HISTO_MAGIC ISC_MAGIC('H', 's', 't', 'o')
#define HISTO_VALID(p) ISC_MAGIC_VALID(p, HISTO_MAGIC)
#define HISTOMULTI_MAGIC ISC_MAGIC('H', 'g', 'M', 't')
REQUIRE(HISTO_VALID(hg));
if (key < BUCKETS(hg)) {
- OUTARG(minp, key_to_minval(hg, key));
- OUTARG(maxp, key_to_maxval(hg, key));
- OUTARG(countp, get_key_count(hg, key));
+ SET_IF_NOT_NULL(minp, key_to_minval(hg, key));
+ SET_IF_NOT_NULL(maxp, key_to_maxval(hg, key));
+ SET_IF_NOT_NULL(countp, get_key_count(hg, key));
return (ISC_R_SUCCESS);
} else {
return (ISC_R_RANGE);
sigma += count * delta * (value - mean);
}
- OUTARG(pm0, pop);
- OUTARG(pm1, mean);
- OUTARG(pm2, (pop > 0) ? sqrt(sigma / pop) : 0.0);
+ SET_IF_NOT_NULL(pm0, pop);
+ SET_IF_NOT_NULL(pm1, mean);
+ SET_IF_NOT_NULL(pm2, (pop > 0) ? sqrt(sigma / pop) : 0.0);
}
/*
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
+/*
+ * Optional return values, or out-arguments
+ */
+#define SET_IF_NOT_NULL(obj, val) \
+ if ((obj) != NULL) { \
+ *(obj) = (val); \
+ }
+
/*%
* Get the allocation size for a struct with a flexible array member
* containing `count` elements. The struct is identified by a pointer,