diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-02-24 09:30:15 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-02-26 14:10:06 -0500 |
commit | 80d326fab534a5380e8f6e509a0b9076655a9670 (patch) | |
tree | 57c636de934b3f8abb7db9bcde64360ecc4eaf66 /include/linux/netlink.h | |
parent | 48e316bc2e045206248c6c75c0d5bbc0c9ddc32c (diff) |
netlink: add netlink_dump_control structure for netlink_dump_start()
Davem considers that the argument list of this interface is getting
out of control. This patch tries to address this issue following
his proposal:
struct netlink_dump_control c = { .dump = dump, .done = done, ... };
netlink_dump_start(..., &c);
Suggested by David S. Miller.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netlink.h')
-rw-r--r-- | include/linux/netlink.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index a390e9d5482..1f8c1a95f57 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -248,11 +248,15 @@ __nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq, int type, int len, int flags) | |||
248 | #define NLMSG_PUT(skb, pid, seq, type, len) \ | 248 | #define NLMSG_PUT(skb, pid, seq, type, len) \ |
249 | NLMSG_NEW(skb, pid, seq, type, len, 0) | 249 | NLMSG_NEW(skb, pid, seq, type, len, 0) |
250 | 250 | ||
251 | struct netlink_dump_control { | ||
252 | int (*dump)(struct sk_buff *skb, struct netlink_callback *); | ||
253 | int (*done)(struct netlink_callback*); | ||
254 | u16 min_dump_alloc; | ||
255 | }; | ||
256 | |||
251 | extern int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, | 257 | extern int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, |
252 | const struct nlmsghdr *nlh, | 258 | const struct nlmsghdr *nlh, |
253 | int (*dump)(struct sk_buff *skb, struct netlink_callback*), | 259 | struct netlink_dump_control *control); |
254 | int (*done)(struct netlink_callback*), | ||
255 | u16 min_dump_alloc); | ||
256 | 260 | ||
257 | 261 | ||
258 | #define NL_NONROOT_RECV 0x1 | 262 | #define NL_NONROOT_RECV 0x1 |