/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2013 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2013, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "unaligned.h"
#ifndef __CHECKER__
-
/* Returns the IP checksum of the 'n' bytes in 'data'.
*
* The return value has the same endianness as the data. That is, if 'data'
return csum_finish(csum_continue(0, data, n));
}
-/* Adds the 16 bits in 'new' to the partial IP checksum 'partial' and returns
- * the updated checksum. (To start a new checksum, pass 0 for 'partial'. To
- * obtain the finished checksum, pass the return value to csum_finish().) */
-uint32_t
-csum_add16(uint32_t partial, ovs_be16 new)
-{
- return partial + new;
-}
-
-/* Adds the 32 bits in 'new' to the partial IP checksum 'partial' and returns
- * the updated checksum. (To start a new checksum, pass 0 for 'partial'. To
- * obtain the finished checksum, pass the return value to csum_finish().) */
-uint32_t
-csum_add32(uint32_t partial, ovs_be32 new)
-{
- return partial + (new >> 16) + (new & 0xffff);
-}
-
-
/* Adds the 'n' bytes in 'data' to the partial IP checksum 'partial' and
* returns the updated checksum. (To start a new checksum, pass 0 for
* 'partial'. To obtain the finished checksum, pass the return value to
/*
- * Copyright (c) 2008, 2011 Nicira, Inc.
+ * Copyright (c) 2008, 2011, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "openvswitch/types.h"
ovs_be16 csum(const void *, size_t);
-uint32_t csum_add16(uint32_t partial, ovs_be16);
-uint32_t csum_add32(uint32_t partial, ovs_be32);
uint32_t csum_continue(uint32_t partial, const void *, size_t);
ovs_be16 csum_finish(uint32_t partial);
ovs_be16 recalc_csum16(ovs_be16 old_csum, ovs_be16 old_u16, ovs_be16 new_u16);
ovs_be16 recalc_csum128(ovs_be16 old_csum, ovs_16aligned_be32 old_u32[4],
const ovs_be32 new_u32[4]);
+#ifndef __CHECKER__
+/* Adds the 16 bits in 'new' to the partial IP checksum 'partial' and returns
+ * the updated checksum. (To start a new checksum, pass 0 for 'partial'. To
+ * obtain the finished checksum, pass the return value to csum_finish().) */
+static inline uint32_t
+csum_add16(uint32_t partial, ovs_be16 new)
+{
+ return partial + new;
+}
+
+/* Adds the 32 bits in 'new' to the partial IP checksum 'partial' and returns
+ * the updated checksum. (To start a new checksum, pass 0 for 'partial'. To
+ * obtain the finished checksum, pass the return value to csum_finish().) */
+static inline uint32_t
+csum_add32(uint32_t partial, ovs_be32 new)
+{
+ return partial + (new >> 16) + (new & 0xffff);
+}
+#else
+uint32_t csum_add16(uint32_t partial, ovs_be16);
+uint32_t csum_add32(uint32_t partial, ovs_be32);
+#endif
+
#endif /* csum.h */