mirror of
https://github.com/openvswitch/ovs
synced 2025-10-29 15:28:56 +00:00
Patch removes genl, netlink, rtnl compat code and dpif-linux fallback-id compat code. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
#ifndef __NET_NETLINK_WRAPPER_H
|
|
#define __NET_NETLINK_WRAPPER_H 1
|
|
|
|
#include <linux/version.h>
|
|
#include_next <net/netlink.h>
|
|
|
|
#ifndef HAVE_NLA_GET_BE16
|
|
/**
|
|
* nla_get_be16 - return payload of __be16 attribute
|
|
* @nla: __be16 netlink attribute
|
|
*/
|
|
static inline __be16 nla_get_be16(const struct nlattr *nla)
|
|
{
|
|
return *(__be16 *) nla_data(nla);
|
|
}
|
|
#endif /* !HAVE_NLA_GET_BE16 */
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)
|
|
/* This function was introduced in 2.6.31, but initially it performed an
|
|
* unaligned access, so we replace it up to 2.6.34 where it was fixed. */
|
|
#define nla_get_be64 rpl_nla_get_be64
|
|
static inline __be64 nla_get_be64(const struct nlattr *nla)
|
|
{
|
|
__be64 tmp;
|
|
|
|
/* The additional cast is necessary because */
|
|
nla_memcpy(&tmp, (struct nlattr *) nla, sizeof(tmp));
|
|
|
|
return tmp;
|
|
}
|
|
#endif
|
|
|
|
#ifndef HAVE_NLA_PUT_BE16
|
|
static inline int nla_put_be16(struct sk_buff *skb, int attrtype, __be16 value)
|
|
{
|
|
return nla_put(skb, attrtype, sizeof(__be16), &value);
|
|
}
|
|
#endif
|
|
|
|
#ifndef HAVE_NLA_PUT_BE32
|
|
static inline int nla_put_be32(struct sk_buff *skb, int attrtype, __be32 value)
|
|
{
|
|
return nla_put(skb, attrtype, sizeof(__be32), &value);
|
|
}
|
|
#endif
|
|
|
|
#ifndef HAVE_NLA_PUT_BE64
|
|
static inline int nla_put_be64(struct sk_buff *skb, int attrtype, __be64 value)
|
|
{
|
|
return nla_put(skb, attrtype, sizeof(__be64), &value);
|
|
}
|
|
#endif
|
|
|
|
#ifndef nla_for_each_nested
|
|
#define nla_for_each_nested(pos, nla, rem) \
|
|
nla_for_each_attr(pos, nla_data(nla), nla_len(nla), rem)
|
|
#endif
|
|
|
|
#ifndef HAVE_NLA_FIND_NESTED
|
|
static inline struct nlattr *nla_find_nested(struct nlattr *nla, int attrtype)
|
|
{
|
|
return nla_find(nla_data(nla), nla_len(nla), attrtype);
|
|
}
|
|
#endif
|
|
|
|
#endif /* net/netlink.h */
|