diff options
author | Jan Engelhardt <jengelh@medozas.de> | 2010-11-16 12:52:32 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-16 12:52:32 -0500 |
commit | 3654654f7aa79a37dde130afb7409c55b11807e7 (patch) | |
tree | 4e65c0d211a6cc748509b7f3b2da7c45b05d3266 /include | |
parent | 9d82ca98f71fd686ef2f3017c5e3e6a4871b6e46 (diff) |
netlink: let nlmsg and nla functions take pointer-to-const args
The changed functions do not modify the NL messages and/or attributes
at all. They should use const (similar to strchr), so that callers
which have a const nlmsg/nlattr around can make use of them without
casting.
While at it, constify a data array.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/netlink.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/include/net/netlink.h b/include/net/netlink.h index 9801c55de5d6..373f1a900cf4 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h | |||
@@ -225,13 +225,15 @@ extern int nlmsg_notify(struct sock *sk, struct sk_buff *skb, | |||
225 | u32 pid, unsigned int group, int report, | 225 | u32 pid, unsigned int group, int report, |
226 | gfp_t flags); | 226 | gfp_t flags); |
227 | 227 | ||
228 | extern int nla_validate(struct nlattr *head, int len, int maxtype, | 228 | extern int nla_validate(const struct nlattr *head, |
229 | int len, int maxtype, | ||
229 | const struct nla_policy *policy); | 230 | const struct nla_policy *policy); |
230 | extern int nla_parse(struct nlattr *tb[], int maxtype, | 231 | extern int nla_parse(struct nlattr **tb, int maxtype, |
231 | struct nlattr *head, int len, | 232 | const struct nlattr *head, int len, |
232 | const struct nla_policy *policy); | 233 | const struct nla_policy *policy); |
233 | extern int nla_policy_len(const struct nla_policy *, int); | 234 | extern int nla_policy_len(const struct nla_policy *, int); |
234 | extern struct nlattr * nla_find(struct nlattr *head, int len, int attrtype); | 235 | extern struct nlattr * nla_find(const struct nlattr *head, |
236 | int len, int attrtype); | ||
235 | extern size_t nla_strlcpy(char *dst, const struct nlattr *nla, | 237 | extern size_t nla_strlcpy(char *dst, const struct nlattr *nla, |
236 | size_t dstsize); | 238 | size_t dstsize); |
237 | extern int nla_memcpy(void *dest, const struct nlattr *src, int count); | 239 | extern int nla_memcpy(void *dest, const struct nlattr *src, int count); |
@@ -346,7 +348,8 @@ static inline int nlmsg_ok(const struct nlmsghdr *nlh, int remaining) | |||
346 | * Returns the next netlink message in the message stream and | 348 | * Returns the next netlink message in the message stream and |
347 | * decrements remaining by the size of the current message. | 349 | * decrements remaining by the size of the current message. |
348 | */ | 350 | */ |
349 | static inline struct nlmsghdr *nlmsg_next(struct nlmsghdr *nlh, int *remaining) | 351 | static inline struct nlmsghdr * |
352 | nlmsg_next(const struct nlmsghdr *nlh, int *remaining) | ||
350 | { | 353 | { |
351 | int totlen = NLMSG_ALIGN(nlh->nlmsg_len); | 354 | int totlen = NLMSG_ALIGN(nlh->nlmsg_len); |
352 | 355 | ||
@@ -398,7 +401,8 @@ static inline struct nlattr *nlmsg_find_attr(const struct nlmsghdr *nlh, | |||
398 | * @maxtype: maximum attribute type to be expected | 401 | * @maxtype: maximum attribute type to be expected |
399 | * @policy: validation policy | 402 | * @policy: validation policy |
400 | */ | 403 | */ |
401 | static inline int nlmsg_validate(struct nlmsghdr *nlh, int hdrlen, int maxtype, | 404 | static inline int nlmsg_validate(const struct nlmsghdr *nlh, |
405 | int hdrlen, int maxtype, | ||
402 | const struct nla_policy *policy) | 406 | const struct nla_policy *policy) |
403 | { | 407 | { |
404 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) | 408 | if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) |
@@ -727,7 +731,8 @@ static inline struct nlattr *nla_next(const struct nlattr *nla, int *remaining) | |||
727 | * | 731 | * |
728 | * Returns the first attribute which matches the specified type. | 732 | * Returns the first attribute which matches the specified type. |
729 | */ | 733 | */ |
730 | static inline struct nlattr *nla_find_nested(struct nlattr *nla, int attrtype) | 734 | static inline struct nlattr * |
735 | nla_find_nested(const struct nlattr *nla, int attrtype) | ||
731 | { | 736 | { |
732 | return nla_find(nla_data(nla), nla_len(nla), attrtype); | 737 | return nla_find(nla_data(nla), nla_len(nla), attrtype); |
733 | } | 738 | } |
@@ -1032,7 +1037,7 @@ static inline void nla_nest_cancel(struct sk_buff *skb, struct nlattr *start) | |||
1032 | * | 1037 | * |
1033 | * Returns 0 on success or a negative error code. | 1038 | * Returns 0 on success or a negative error code. |
1034 | */ | 1039 | */ |
1035 | static inline int nla_validate_nested(struct nlattr *start, int maxtype, | 1040 | static inline int nla_validate_nested(const struct nlattr *start, int maxtype, |
1036 | const struct nla_policy *policy) | 1041 | const struct nla_policy *policy) |
1037 | { | 1042 | { |
1038 | return nla_validate(nla_data(start), nla_len(start), maxtype, policy); | 1043 | return nla_validate(nla_data(start), nla_len(start), maxtype, policy); |