X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=config.h;h=c5e42004501a523f7455514104824443c21c96ef;hp=df088edda631fe6dd74a4196f897965c8aa8f60e;hb=69c5043fdcea724f59055630eb0cf593c41732cb;hpb=fd50535d7d4060d3cb80f1c317a087507ecfdf2b diff --git a/config.h b/config.h index df088ed..c5e4200 100644 --- a/config.h +++ b/config.h @@ -1,3 +1,16 @@ +/* + * netifd - network interface daemon + * Copyright (C) 2012 Felix Fietkau + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ #ifndef __NETIFD_CONFIG_H #define __NETIFD_CONFIG_H @@ -25,6 +38,26 @@ struct config_param_list { const struct config_param_list *next[]; }; -void config_init_interfaces(const char *name); +#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_all(void); +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); + +struct blob_attr *config_memdup(struct blob_attr *attr); #endif