summaryrefslogtreecommitdiff
path: root/config.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-03 00:49:06 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-10-03 00:49:06 +0200
commit14fae227e03e69df2bf8af4c1490929459727ca8 (patch)
treeec5127d92fe9d432f1b3d1d772c6e6c4245cb6ec /config.h
parent56ca2eb93d0c10fbba87b40116872ed63e3e6ad5 (diff)
downloadnetifd-14fae227e03e69df2bf8af4c1490929459727ca8.tar.gz
add functions for checking for config differences
Diffstat (limited to 'config.h')
-rw-r--r--config.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/config.h b/config.h
index df088ed..6dfb236 100644
--- a/config.h
+++ b/config.h
@@ -25,6 +25,24 @@ struct config_param_list {
const struct config_param_list *next[];
};
+#ifndef BITS_PER_LONG
+#define BITS_PER_LONG (8 * sizeof(unsigned long))
+#endif
+
+static inline void set_bit(unsigned long *bits, int bit)
+{
+ bits[bit / BITS_PER_LONG] |= (1UL << (bit % BITS_PER_LONG));
+}
+
+static inline bool test_bit(unsigned long *bits, int bit)
+{
+ return !!(bits[bit / BITS_PER_LONG] & (1UL << (bit % BITS_PER_LONG)));
+}
+
void config_init_interfaces(const char *name);
+bool config_check_equal(struct blob_attr *c1, struct blob_attr *c2,
+ const struct config_param_list *config);
+bool config_diff(struct blob_attr **tb1, struct blob_attr **tb2,
+ const struct config_param_list *config, unsigned long *diff);
#endif