Lines Matching refs:set

36 #define get_ext(set, map, id)	((map)->extensions + ((set)->dsize * (id)))  argument
39 mtype_gc_init(struct ip_set *set, void (*gc)(struct timer_list *t)) in mtype_gc_init() argument
41 struct mtype *map = set->data; in mtype_gc_init()
44 mod_timer(&map->gc, jiffies + IPSET_GC_PERIOD(set->timeout) * HZ); in mtype_gc_init()
48 mtype_ext_cleanup(struct ip_set *set) in mtype_ext_cleanup() argument
50 struct mtype *map = set->data; in mtype_ext_cleanup()
55 ip_set_ext_destroy(set, get_ext(set, map, id)); in mtype_ext_cleanup()
59 mtype_destroy(struct ip_set *set) in mtype_destroy() argument
61 struct mtype *map = set->data; in mtype_destroy()
63 if (set->dsize && set->extensions & IPSET_EXT_DESTROY) in mtype_destroy()
64 mtype_ext_cleanup(set); in mtype_destroy()
68 set->data = NULL; in mtype_destroy()
72 mtype_flush(struct ip_set *set) in mtype_flush() argument
74 struct mtype *map = set->data; in mtype_flush()
76 if (set->extensions & IPSET_EXT_DESTROY) in mtype_flush()
77 mtype_ext_cleanup(set); in mtype_flush()
79 set->elements = 0; in mtype_flush()
80 set->ext_size = 0; in mtype_flush()
92 mtype_head(struct ip_set *set, struct sk_buff *skb) in mtype_head() argument
94 const struct mtype *map = set->data; in mtype_head()
96 size_t memsize = mtype_memsize(map, set->dsize) + set->ext_size; in mtype_head()
102 nla_put_net32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref)) || in mtype_head()
104 nla_put_net32(skb, IPSET_ATTR_ELEMENTS, htonl(set->elements))) in mtype_head()
106 if (unlikely(ip_set_put_flags(skb, set))) in mtype_head()
116 mtype_test(struct ip_set *set, void *value, const struct ip_set_ext *ext, in mtype_test() argument
119 struct mtype *map = set->data; in mtype_test()
121 void *x = get_ext(set, map, e->id); in mtype_test()
122 int ret = mtype_do_test(e, map, set->dsize); in mtype_test()
126 return ip_set_match_extensions(set, ext, mext, flags, x); in mtype_test()
130 mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext, in mtype_add() argument
133 struct mtype *map = set->data; in mtype_add()
135 void *x = get_ext(set, map, e->id); in mtype_add()
136 int ret = mtype_do_add(e, map, flags, set->dsize); in mtype_add()
139 if (SET_WITH_TIMEOUT(set) && in mtype_add()
140 ip_set_timeout_expired(ext_timeout(x, set))) { in mtype_add()
141 set->elements--; in mtype_add()
148 ip_set_ext_destroy(set, x); in mtype_add()
151 set->elements--; in mtype_add()
153 if (SET_WITH_TIMEOUT(set)) in mtype_add()
155 mtype_add_timeout(ext_timeout(x, set), e, ext, set, map, ret); in mtype_add()
157 ip_set_timeout_set(ext_timeout(x, set), ext->timeout); in mtype_add()
160 if (SET_WITH_COUNTER(set)) in mtype_add()
161 ip_set_init_counter(ext_counter(x, set), ext); in mtype_add()
162 if (SET_WITH_COMMENT(set)) in mtype_add()
163 ip_set_init_comment(set, ext_comment(x, set), ext); in mtype_add()
164 if (SET_WITH_SKBINFO(set)) in mtype_add()
165 ip_set_init_skbinfo(ext_skbinfo(x, set), ext); in mtype_add()
169 set->elements++; in mtype_add()
175 mtype_del(struct ip_set *set, void *value, const struct ip_set_ext *ext, in mtype_del() argument
178 struct mtype *map = set->data; in mtype_del()
180 void *x = get_ext(set, map, e->id); in mtype_del()
185 ip_set_ext_destroy(set, x); in mtype_del()
186 set->elements--; in mtype_del()
187 if (SET_WITH_TIMEOUT(set) && in mtype_del()
188 ip_set_timeout_expired(ext_timeout(x, set))) in mtype_del()
203 mtype_list(const struct ip_set *set, in mtype_list() argument
206 struct mtype *map = set->data; in mtype_list()
221 x = get_ext(set, map, id); in mtype_list()
223 (SET_WITH_TIMEOUT(set) && in mtype_list()
227 ip_set_timeout_expired(ext_timeout(x, set)))) in mtype_list()
239 if (mtype_do_list(skb, map, id, set->dsize)) in mtype_list()
241 if (ip_set_put_extensions(skb, set, x, mtype_is_filled(x))) in mtype_list()
268 struct ip_set *set = map->set; in mtype_gc() local
275 spin_lock_bh(&set->lock); in mtype_gc()
277 if (mtype_gc_test(id, map, set->dsize)) { in mtype_gc()
278 x = get_ext(set, map, id); in mtype_gc()
279 if (ip_set_timeout_expired(ext_timeout(x, set))) { in mtype_gc()
281 ip_set_ext_destroy(set, x); in mtype_gc()
282 set->elements--; in mtype_gc()
285 spin_unlock_bh(&set->lock); in mtype_gc()
287 map->gc.expires = jiffies + IPSET_GC_PERIOD(set->timeout) * HZ; in mtype_gc()
292 mtype_cancel_gc(struct ip_set *set) in mtype_cancel_gc() argument
294 struct mtype *map = set->data; in mtype_cancel_gc()
296 if (SET_WITH_TIMEOUT(set)) in mtype_cancel_gc()