diff options
Diffstat (limited to 'lib/genl/family.c')
-rw-r--r-- | lib/genl/family.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/lib/genl/family.c b/lib/genl/family.c index e8e0c9e0..1749472d 100644 --- a/lib/genl/family.c +++ b/lib/genl/family.c @@ -12,15 +12,26 @@ * @{ */ -#include <netlink-private/genl.h> +#include "nl-default.h" + #include <netlink/netlink.h> #include <netlink/genl/genl.h> #include <netlink/genl/family.h> #include <netlink/utils.h> -#include "netlink-private/utils.h" +#include "nl-genl.h" +#include "nl-priv-dynamic-core/object-api.h" +#include "nl-priv-dynamic-core/nl-core.h" /** @cond SKIP */ +struct genl_family_op +{ + uint32_t o_id; + uint32_t o_flags; + + struct nl_list_head o_list; +}; + #define FAMILY_ATTR_ID 0x01 #define FAMILY_ATTR_NAME 0x02 #define FAMILY_ATTR_VERSION 0x04 @@ -153,15 +164,13 @@ static uint64_t family_compare(struct nl_object *_a, struct nl_object *_b, struct genl_family *b = (struct genl_family *) _b; uint64_t diff = 0; -#define FAM_DIFF(ATTR, EXPR) ATTR_DIFF(attrs, FAMILY_ATTR_##ATTR, a, b, EXPR) - - diff |= FAM_DIFF(ID, a->gf_id != b->gf_id); - diff |= FAM_DIFF(VERSION, a->gf_version != b->gf_version); - diff |= FAM_DIFF(HDRSIZE, a->gf_hdrsize != b->gf_hdrsize); - diff |= FAM_DIFF(MAXATTR, a->gf_maxattr != b->gf_maxattr); - diff |= FAM_DIFF(NAME, strcmp(a->gf_name, b->gf_name)); - -#undef FAM_DIFF +#define _DIFF(ATTR, EXPR) ATTR_DIFF(attrs, ATTR, a, b, EXPR) + diff |= _DIFF(FAMILY_ATTR_ID, a->gf_id != b->gf_id); + diff |= _DIFF(FAMILY_ATTR_VERSION, a->gf_version != b->gf_version); + diff |= _DIFF(FAMILY_ATTR_HDRSIZE, a->gf_hdrsize != b->gf_hdrsize); + diff |= _DIFF(FAMILY_ATTR_MAXATTR, a->gf_maxattr != b->gf_maxattr); + diff |= _DIFF(FAMILY_ATTR_NAME, strcmp(a->gf_name, b->gf_name)); +#undef _DIFF return diff; } |