Deleted Added
full compact
in_cksum.h (134300) in_cksum.h (143063)
1/*-
2 * Copyright (c) 1990 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * from tahoe: in_cksum.c 1.2 86/01/05
30 * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91
31 * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp
1/*-
2 * Copyright (c) 1990 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * from tahoe: in_cksum.c 1.2 86/01/05
30 * from: @(#)in_cksum.c 1.3 (Berkeley) 1/19/91
31 * from: Id: in_cksum.c,v 1.8 1995/12/03 18:35:19 bde Exp
32 * $FreeBSD: head/sys/i386/include/in_cksum.h 134300 2004-08-25 18:28:15Z obrien $
32 * $FreeBSD: head/sys/i386/include/in_cksum.h 143063 2005-03-02 21:33:29Z joerg $
33 */
34
35#ifndef _MACHINE_IN_CKSUM_H_
36#define _MACHINE_IN_CKSUM_H_ 1
37
33 */
34
35#ifndef _MACHINE_IN_CKSUM_H_
36#define _MACHINE_IN_CKSUM_H_ 1
37
38#ifndef _SYS_CDEFS_H_
39#error this file needs sys/cdefs.h as a prerequisite
40#endif
41
38/*
39 * MP safe (alfred)
40 */
41
42#include <sys/cdefs.h>
43
44#define in_cksum(m, len) in_cksum_skip(m, len, 0)
45
46/*
47 * It it useful to have an Internet checksum routine which is inlineable
48 * and optimized specifically for the task of computing IP header checksums
49 * in the normal case (where there are no options and the header length is
50 * therefore always exactly five 32-bit words.
51 */
42/*
43 * MP safe (alfred)
44 */
45
46#include <sys/cdefs.h>
47
48#define in_cksum(m, len) in_cksum_skip(m, len, 0)
49
50/*
51 * It it useful to have an Internet checksum routine which is inlineable
52 * and optimized specifically for the task of computing IP header checksums
53 * in the normal case (where there are no options and the header length is
54 * therefore always exactly five 32-bit words.
55 */
52#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
56#if defined(__GNUCLIKE_ASM) && !defined(__INTEL_COMPILER)
53static __inline u_int
54in_cksum_hdr(const struct ip *ip)
55{
56 register u_int sum = 0;
57
58 __asm __volatile (
59 "addl %1, %0\n"
60 "adcl %2, %0\n"

--- 53 unchanged lines hidden (view full) ---

114 int __tmpsum; \
115 __tmpsum = (int)ntohs(ip->ip_sum) + 256; \
116 ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16)); \
117 } while(0)
118
119#endif
120
121#ifdef _KERNEL
57static __inline u_int
58in_cksum_hdr(const struct ip *ip)
59{
60 register u_int sum = 0;
61
62 __asm __volatile (
63 "addl %1, %0\n"
64 "adcl %2, %0\n"

--- 53 unchanged lines hidden (view full) ---

118 int __tmpsum; \
119 __tmpsum = (int)ntohs(ip->ip_sum) + 256; \
120 ip->ip_sum = htons(__tmpsum + (__tmpsum >> 16)); \
121 } while(0)
122
123#endif
124
125#ifdef _KERNEL
122#if !defined(__GNUC__) || defined(__INTEL_COMPILER)
126#if !defined(__GNUCLIKE_ASM) || defined(__INTEL_COMPILER)
123u_int in_cksum_hdr(const struct ip *ip);
124u_short in_addword(u_short sum, u_short b);
125u_short in_pseudo(u_int sum, u_int b, u_int c);
126#endif
127u_short in_cksum_skip(struct mbuf *m, int len, int skip);
128#endif /* _KERNEL */
129
130#endif /* _MACHINE_IN_CKSUM_H_ */
127u_int in_cksum_hdr(const struct ip *ip);
128u_short in_addword(u_short sum, u_short b);
129u_short in_pseudo(u_int sum, u_int b, u_int c);
130#endif
131u_short in_cksum_skip(struct mbuf *m, int len, int skip);
132#endif /* _KERNEL */
133
134#endif /* _MACHINE_IN_CKSUM_H_ */