diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2009-11-10 21:53:19 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2009-11-10 21:53:19 +0100 |
commit | cb76e46e97b0013305a7c96c2230a791675a15cf (patch) | |
tree | 919a4cf6a6a3de1fdfc432fdf10000dddf14f8db /kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h | |
parent | 17d954a793b8a275324e5941a9515b991c80789d (diff) |
ipset 4.0 releasedv4.0
See ChangeLog files
Diffstat (limited to 'kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h')
-rw-r--r-- | kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h b/kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h index 90e87e3..da3493f 100644 --- a/kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h +++ b/kernel/include/linux/netfilter_ipv4/ip_set_bitmaps.h @@ -77,22 +77,21 @@ type##_list_header(const struct ip_set *set, void *data) \ __##type##_list_header(map, header); \ } -#define BITMAP_LIST_MEMBERS_SIZE(type) \ +#define BITMAP_LIST_MEMBERS_SIZE(type, dtype, sizeid, testfn) \ static int \ -type##_list_members_size(const struct ip_set *set) \ +type##_list_members_size(const struct ip_set *set, char dont_align) \ { \ const struct ip_set_##type *map = set->data; \ + ip_set_ip_t i, elements = 0; \ \ - return map->size; \ -} - -#define BITMAP_LIST_MEMBERS(type) \ -static void \ -type##_list_members(const struct ip_set *set, void *data) \ -{ \ - const struct ip_set_##type *map = set->data; \ + if (dont_align) \ + return map->size; \ + \ + for (i = 0; i < sizeid; i++) \ + if (testfn) \ + elements++; \ \ - memcpy(data, map->members, map->size); \ + return elements * IPSET_ALIGN(sizeof(dtype)); \ } #define IP_SET_TYPE(type, __features) \ |