aboutsummaryrefslogtreecommitdiff
path: root/util/macros.h
diff options
context:
space:
mode:
authorRuss Allbery <rra@stanford.edu>2013-03-27 15:19:54 -0700
committerRuss Allbery <rra@stanford.edu>2013-03-27 15:19:54 -0700
commit5df16adc5024c56e3d733741919954308b4d498a (patch)
tree5f042adaaa988478ca271f41f9b272ef5a1b45b5 /util/macros.h
parent431c3b56a52b9fe3135ab4339bada13ed49bda92 (diff)
parent6871bae8e26beadaff5035de56b4f70a78961dc9 (diff)
Merge tag 'upstream/1.0' into debian
Upstream version 1.0
Diffstat (limited to 'util/macros.h')
-rw-r--r--util/macros.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/util/macros.h b/util/macros.h
index 0104d9f..54faee5 100644
--- a/util/macros.h
+++ b/util/macros.h
@@ -1,8 +1,18 @@
/*
* Some standard helpful macros.
*
+ * The canonical version of this file is maintained in the rra-c-util package,
+ * which can be found at <http://www.eyrie.org/~eagle/software/rra-c-util/>.
+ *
* Written by Russ Allbery <rra@stanford.edu>
- * This work is hereby placed in the public domain by its author.
+ *
+ * The authors hereby relinquish any claim to any copyright that they may have
+ * in this work, whether granted under contract or by operation of law or
+ * international treaty, and hereby commit to the public, at large, that they
+ * shall not, at any time in the future, seek to enforce any copyright in this
+ * work against any person or entity, or prevent any person or entity from
+ * copying, publishing, distributing or creating derivative works of this
+ * work.
*/
#ifndef UTIL_MACROS_H
@@ -10,6 +20,15 @@
#include <portable/macros.h>
+/*
+ * Used for iterating through arrays. ARRAY_SIZE returns the number of
+ * elements in the array (useful for a < upper bound in a for loop) and
+ * ARRAY_END returns a pointer to the element past the end (ISO C99 makes it
+ * legal to refer to such a pointer as long as it's never dereferenced).
+ */
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
+#define ARRAY_END(array) (&(array)[ARRAY_SIZE(array)])
+
/* Used for unused parameters to silence gcc warnings. */
#define UNUSED __attribute__((__unused__))