LGTM, and maybe it’s not worth trying to use a GCC builtin for this. Acked-by: Jarno Rajahalme <jrajaha...@nicira.com>
Jarno On Nov 22, 2013, at 1:37 PM, Ben Pfaff <b...@nicira.com> wrote: > pcap_read() can use it whether we're big-endian or not. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > lib/byte-order.h | 4 +--- > lib/pcap-file.c | 6 ++---- > 2 files changed, 3 insertions(+), 7 deletions(-) > > diff --git a/lib/byte-order.h b/lib/byte-order.h > index f9be78b..352f91e 100644 > --- a/lib/byte-order.h > +++ b/lib/byte-order.h > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2008, 2010, 2011 Nicira, Inc. > + * Copyright (c) 2008, 2010, 2011, 2013 Nicira, Inc. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > @@ -40,7 +40,6 @@ ovs_be64 htonll(uint64_t); > uint64_t ntohll(ovs_be64); > #endif > > -#if defined(WORDS_BIGENDIAN) > static inline uint32_t > uint32_byteswap(uint32_t crc) { > return (((crc & 0x000000ff) << 24) | > @@ -48,7 +47,6 @@ uint32_byteswap(uint32_t crc) { > ((crc & 0x00ff0000) >> 8) | > ((crc & 0xff000000) >> 24)); > } > -#endif > > /* These macros may substitute for htons(), htonl(), and htonll() in contexts > * where function calls are not allowed, such as case labels. They should not > diff --git a/lib/pcap-file.c b/lib/pcap-file.c > index 700cdea..fbb0751 100644 > --- a/lib/pcap-file.c > +++ b/lib/pcap-file.c > @@ -21,6 +21,7 @@ > #include <stdlib.h> > #include <string.h> > #include <sys/stat.h> > +#include "byte-order.h" > #include "compiler.h" > #include "ofpbuf.h" > #include "vlog.h" > @@ -151,10 +152,7 @@ pcap_read(FILE *file, struct ofpbuf **bufp) > /* Calculate length. */ > len = prh.incl_len; > if (len > 0xffff) { > - uint32_t swapped_len = (((len & 0xff000000) >> 24) | > - ((len & 0x00ff0000) >> 8) | > - ((len & 0x0000ff00) << 8) | > - ((len & 0x000000ff) << 24)); > + uint32_t swapped_len = uint32_byteswap(len); > if (swapped_len > 0xffff) { > VLOG_WARN("bad packet length %zu or %"PRIu32" " > "reading pcap file", > -- > 1.7.10.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev