Lines Matching refs:sum
13 * and adds in "sum" (32-bit), while copying the block to dst.
39 static inline __sum16 csum_fold(__wsum sum)
41 u32 tmp = (__force u32)sum;
44 * swap the two 16-bit halves of sum
47 * giving us the correct sum in the upper half.
58 __u8 proto, __wsum sum)
61 u64 s = (__force u32)sum;
78 : "=r" (sum)
79 : "r" (daddr), "r"(saddr), "r"(proto + len), "0"(sum));
80 return sum;
89 __u8 proto, __wsum sum)
91 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
116 static __always_inline __wsum csum_shift(__wsum sum, int offset)
118 /* rotate sum to align it with a 16b boundary */
119 return (__force __wsum)rol32((__force u32)sum, (offset & 1) << 3);
138 __wsum sum, tmp;
146 : "=r" (sum), "=r" (tmp), "+b" (ptr)
150 return sum;
161 * and adds in "sum" (32-bit)
171 __wsum __csum_partial(const void *buff, int len, __wsum sum);
173 static __always_inline __wsum csum_partial(const void *buff, int len, __wsum sum)
177 sum = csum_add(sum, (__force __wsum)*(const u16 *)buff);
179 sum = csum_add(sum, (__force __wsum)*(const u32 *)buff);
181 sum = csum_add(sum, (__force __wsum)
184 sum = csum_add(sum, (__force __wsum)
187 sum = csum_add(sum, (__force __wsum)
190 sum = csum_add(sum, (__force __wsum)
193 sum = csum_add(sum, (__force __wsum)
196 sum = csum_add(sum, (__force __wsum)
199 sum = csum_add(sum, ip_fast_csum_nofold(buff, len >> 2));
201 sum = __csum_partial(buff, len, sum);
203 return sum;
218 __u32 len, __u8 proto, __wsum sum);