Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys - pass the alignment instead of the mask (as Roy asked a...



details:   https://anonhg.NetBSD.org/src/rev/64f8e36bd3a2
branches:  trunk
changeset: 959542:64f8e36bd3a2
user:      christos <christos%NetBSD.org@localhost>
date:      Wed Feb 17 22:32:04 2021 +0000

description:
- pass the alignment instead of the mask (as Roy asked and to match the
  other macro)
- use alignof to determine that alignment and CTASSERT what we expect
- remove unused macros

diffstat:

 sys/net/if_arp.h           |  5 +++--
 sys/netinet/icmp_private.h |  3 +--
 sys/netinet/igmp_var.h     |  4 +---
 sys/netinet/ip_private.h   |  5 +++--
 sys/netinet/tcp_private.h  |  5 +++--
 sys/netinet/udp_private.h  |  5 +++--
 sys/netinet6/ip6_private.h |  5 +++--
 sys/sys/mbuf.h             |  7 ++++---
 sys/sys/param.h            |  4 ++--
 9 files changed, 23 insertions(+), 20 deletions(-)

diffs (171 lines):

diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/net/if_arp.h
--- a/sys/net/if_arp.h  Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/net/if_arp.h  Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_arp.h,v 1.41 2021/02/16 10:20:56 martin Exp $       */
+/*     $NetBSD: if_arp.h,v 1.42 2021/02/17 22:32:04 christos Exp $     */
 
 /*
  * Copyright (c) 1986, 1993
@@ -72,7 +72,8 @@
        uint8_t  ar_tpa[];      /* target protocol address */
 #endif
 };
-#define        ARP_HDR_ALIGNMENT       1
+#define        ARP_HDR_ALIGNMENT       __alignof(struct arphdr)
+__CTASSERT(ARP_HDR_ALIGNMENT == 2);
 
 static __inline uint8_t *
 ar_data(struct arphdr *ap)
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet/icmp_private.h
--- a/sys/netinet/icmp_private.h        Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet/icmp_private.h        Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: icmp_private.h,v 1.4 2021/02/14 20:58:35 christos Exp $        */
+/*     $NetBSD: icmp_private.h,v 1.5 2021/02/17 22:32:04 christos Exp $        */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -44,7 +44,6 @@
 
 #define        ICMP_STATINC(x)         _NET_STATINC(icmpstat_percpu, x)
 
-#define        ICMP_HDR_ALIGNMENT      3
 #endif /* _KERNEL_ */
 
 #endif /* !_NETINET_ICMP_PRIVATE_H_ */
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet/igmp_var.h
--- a/sys/netinet/igmp_var.h    Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet/igmp_var.h    Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: igmp_var.h,v 1.26 2021/02/14 20:58:35 christos Exp $   */
+/*     $NetBSD: igmp_var.h,v 1.27 2021/02/17 22:32:04 christos Exp $   */
 
 /*
  * Copyright (c) 1992, 1993
@@ -105,8 +105,6 @@
  */
 #define        IGMP_RANDOM_DELAY(X)    (cprng_fast32() % (X) + 1)
 
-#define        IGMP_HDR_ALIGNMENT      3
-
 void   igmp_init(void);
 void   igmp_input(struct mbuf *, int, int);
 int    igmp_joingroup(struct in_multi *);
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet/ip_private.h
--- a/sys/netinet/ip_private.h  Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet/ip_private.h  Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ip_private.h,v 1.4 2021/02/14 20:58:35 christos Exp $  */
+/*     $NetBSD: ip_private.h,v 1.5 2021/02/17 22:32:04 christos Exp $  */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -43,7 +43,8 @@
 #define        IP_STATINC(x)           _NET_STATINC(ipstat_percpu, x)
 #define        IP_STATDEC(x)           _NET_STATDEC(ipstat_percpu, x)
 
-#define        IP_HDR_ALIGNMENT        3
+#define        IP_HDR_ALIGNMENT        __alignof(struct ip)
+__CTASSERT(IP_HDR_ALIGNMENT == 4);
 #endif /* _KERNEL */
 
 #endif /* !_NETINET_IP_PRIVATE_H_ */
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet/tcp_private.h
--- a/sys/netinet/tcp_private.h Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet/tcp_private.h Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tcp_private.h,v 1.4 2021/02/14 20:58:35 christos Exp $ */
+/*     $NetBSD: tcp_private.h,v 1.5 2021/02/17 22:32:04 christos Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -43,7 +43,8 @@
 #define        TCP_STATINC(x)          _NET_STATINC(tcpstat_percpu, x)
 #define        TCP_STATADD(x, v)       _NET_STATADD(tcpstat_percpu, x, v)
 
-#define        TCP_HDR_ALIGNMENT       3
+#define        TCP_HDR_ALIGNMENT       __alignof(struct tcphdr)
+__CTASSERT(TCP_HDR_ALIGNMENT == 4);
 #endif /* _KERNEL */
 
 #endif /* !_NETINET_TCP_PRIVATE_H_ */
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet/udp_private.h
--- a/sys/netinet/udp_private.h Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet/udp_private.h Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: udp_private.h,v 1.4 2021/02/14 20:58:35 christos Exp $ */
+/*     $NetBSD: udp_private.h,v 1.5 2021/02/17 22:32:04 christos Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -39,7 +39,8 @@
 
 #define        UDP_STATINC(x)          _NET_STATINC(udpstat_percpu, x)
 
-#define        UDP_HDR_ALIGNMENT       3
+#define        UDP_HDR_ALIGNMENT       __alignof(struct udphdr)
+__CTASSERT(UDP_HDR_ALIGNMENT == 2);
 #endif /* _KERNEL */
 
 #endif /* !_NETINET_UDP_PRIVATE_H_ */
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/netinet6/ip6_private.h
--- a/sys/netinet6/ip6_private.h        Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/netinet6/ip6_private.h        Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ip6_private.h,v 1.4 2021/02/14 20:58:35 christos Exp $ */
+/*     $NetBSD: ip6_private.h,v 1.5 2021/02/17 22:32:04 christos Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -43,7 +43,8 @@
 #define        IP6_STATINC(x)          _NET_STATINC(ip6stat_percpu, x)
 #define        IP6_STATDEC(x)          _NET_STATDEC(ip6stat_percpu, x)
 
-#define        IP6_HDR_ALIGNMENT       3
+#define        IP6_HDR_ALIGNMENT       __alignof(struct ip6_hdr)
+__CTASSERT(IP6_HDR_ALIGNMENT == 4);
 #endif /* _KERNEL */
 
 #endif /* !_NETINET_IP6_PRIVATE_H_ */
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/sys/mbuf.h
--- a/sys/sys/mbuf.h    Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/sys/mbuf.h    Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mbuf.h,v 1.230 2021/02/15 09:29:56 kre Exp $   */
+/*     $NetBSD: mbuf.h,v 1.231 2021/02/17 22:32:04 christos Exp $      */
 
 /*
  * Copyright (c) 1996, 1997, 1999, 2001, 2007 The NetBSD Foundation, Inc.
@@ -846,10 +846,11 @@
 static __inline int
 m_get_aligned_hdr(struct mbuf **m, int align, size_t hlen, bool linkhdr)
 {
-       if (POINTER_ALIGNED_P(mtod(*m, void *), align) == 0)
+       if (POINTER_ALIGNED_P(mtod(*m, void *), align) == 0) {
+               --align;        // Turn into mask
                *m = m_copyup(*m, hlen, 
                      linkhdr ? (max_linkhdr + align) & ~align : 0);
-       else if (__predict_false((size_t)(*m)->m_len < hlen))
+       } else if (__predict_false((size_t)(*m)->m_len < hlen))
                *m = m_pullup(*m, hlen);
        return *m == NULL;
 }
diff -r c5ebf3a1fc6e -r 64f8e36bd3a2 sys/sys/param.h
--- a/sys/sys/param.h   Wed Feb 17 21:09:39 2021 +0000
+++ b/sys/sys/param.h   Wed Feb 17 22:32:04 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: param.h,v 1.688 2021/02/15 19:46:53 christos Exp $     */
+/*     $NetBSD: param.h,v 1.689 2021/02/17 22:32:04 christos Exp $     */
 
 /*-
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -290,7 +290,7 @@
 #ifdef __NO_STRICT_ALIGNMENT
 #define        POINTER_ALIGNED_P(p, a)         1
 #else
-#define        POINTER_ALIGNED_P(p, a)         (((uintptr_t)(p) & (a)) == 0)
+#define        POINTER_ALIGNED_P(p, a)         (((uintptr_t)(p) & ((a) - 1)) == 0)
 #endif
 
 /*



Home | Main Index | Thread Index | Old Index