X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetlink.c;h=b4de3ed7cf408cab076cb0c310fdf52a478c9d51;hb=7593daa2473c464cd179420b9c7f68989044fdee;hp=725bba02f203324e679be9c3fe01f638f7f72318;hpb=33cada0cf1f24beb79c23328acb2bf9860c34679;p=openvswitch diff --git a/lib/netlink.c b/lib/netlink.c index 725bba02..b4de3ed7 100644 --- a/lib/netlink.c +++ b/lib/netlink.c @@ -25,6 +25,7 @@ #include "netlink-protocol.h" #include "ofpbuf.h" #include "timeval.h" +#include "unaligned.h" #include "vlog.h" VLOG_DEFINE_THIS_MODULE(netlink); @@ -435,7 +436,8 @@ nl_attr_get_u32(const struct nlattr *nla) uint64_t nl_attr_get_u64(const struct nlattr *nla) { - return NL_ATTR_GET_AS(nla, uint64_t); + const ovs_32aligned_u64 *x = nl_attr_get_unspec(nla, sizeof *x); + return get_32aligned_u64(x); } /* Returns the 16-bit network byte order value in 'nla''s payload. @@ -462,7 +464,8 @@ nl_attr_get_be32(const struct nlattr *nla) ovs_be64 nl_attr_get_be64(const struct nlattr *nla) { - return NL_ATTR_GET_AS(nla, ovs_be64); + const ovs_32aligned_be64 *x = nl_attr_get_unspec(nla, sizeof *x); + return get_32aligned_be64(x); } /* Returns the null-terminated string value in 'nla''s payload. @@ -612,7 +615,7 @@ nl_parse_nested(const struct nlattr *nla, const struct nl_policy policy[], return nl_policy_parse(&buf, 0, policy, attrs, n_attrs); } -static const struct nlattr * +const struct nlattr * nl_attr_find__(const struct nlattr *attrs, size_t size, uint16_t type) { const struct nlattr *nla;