summaryrefslogtreecommitdiff
path: root/libnul.h
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@redhat.com>2008-11-07 22:27:14 -0500
committerSøren Sandmann Pedersen <sandmann@redhat.com>2008-11-07 22:27:14 -0500
commit1b5354132fc61321b116ea7a199a751cfbc51014 (patch)
treef65d32476136f1be6268fc77a33ad9399cd6ad99 /libnul.h
parent662988df0e35415a479fca3fc244a881bb3a296e (diff)
Add simple pointer array
Diffstat (limited to 'libnul.h')
-rw-r--r--libnul.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/libnul.h b/libnul.h
index 009268c..9ef66e5 100644
--- a/libnul.h
+++ b/libnul.h
@@ -22,6 +22,26 @@
#include <stdint.h>
#include <glib.h>
+/* From glib */
+
+/* Provide convenience macros for handling structure
+ * fields through their offsets.
+ */
+
+#if defined(__GNUC__) && __GNUC__ >= 4
+# define NUL_STRUCT_OFFSET(struct_type, member) \
+ ((gssize) __builtin_offsetof (struct_type, member))
+#else
+# define NUL_STRUCT_OFFSET(struct_type, member) \
+ ((gssize) ((guint8*) &((struct_type*) 0)->member))
+#endif
+
+/* Pointer arrays */
+void **nul_parr_new (void);
+void **nul_parr_append (void **arr, gpointer data);
+gsize nul_parr_len (void **arr);
+void nul_parr_free (void **arr);
+
typedef union
{
uint32_t v_uint32;