Module Name:    src
Committed By:   christos
Date:           Sat Jun 30 15:08:04 UTC 2018

Modified Files:
        src/sys/net: if_arp.h

Log Message:
Provide an inline to return the data part of the arp packet instead of
open-coding it in multiple places.


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/net/if_arp.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_arp.h
diff -u src/sys/net/if_arp.h:1.32 src/sys/net/if_arp.h:1.33
--- src/sys/net/if_arp.h:1.32	Thu Apr 19 17:20:43 2018
+++ src/sys/net/if_arp.h	Sat Jun 30 11:08:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_arp.h,v 1.32 2018/04/19 21:20:43 christos Exp $	*/
+/*	$NetBSD: if_arp.h,v 1.33 2018/06/30 15:08:04 christos Exp $	*/
 
 /*
  * Copyright (c) 1986, 1993
@@ -74,15 +74,21 @@ struct	arphdr {
 } __packed;
 
 static __inline uint8_t *
+ar_data(struct arphdr *ap)
+{
+	return (uint8_t *)(void *)(ap + 1);
+}
+
+static __inline uint8_t *
 ar_sha(struct arphdr *ap)
 {
-	return ((uint8_t *)(ap + 1)) + 0;
+	return ar_data(ap) + 0;
 }
 
 static __inline uint8_t *
 ar_spa(struct arphdr *ap)
 {
-	return ((uint8_t *)(ap + 1)) + ap->ar_hln;
+	return ar_data(ap) + ap->ar_hln;
 }
 
 static __inline uint8_t *
@@ -91,7 +97,7 @@ ar_tha(struct arphdr *ap)
 	if (ntohs(ap->ar_hrd) == ARPHRD_IEEE1394) {
 		return NULL;
 	} else {
-		return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln;
+		return ar_data(ap) + ap->ar_hln + ap->ar_pln;
 	}
 }
 
@@ -99,10 +105,9 @@ static __inline uint8_t *
 ar_tpa(struct arphdr *ap)
 {
 	if (ntohs(ap->ar_hrd) == ARPHRD_IEEE1394) {
-		return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln;
+		return ar_data(ap) + ap->ar_hln + ap->ar_pln;
 	} else {
-		return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln +
-		    ap->ar_hln;
+		return ar_data(ap) + ap->ar_hln + ap->ar_pln + ap->ar_hln;
 	}
 }
 

Reply via email to