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; } }