[U-Boot] [PATCH v2 21/21] net: cosmetic: Replace magic numbers in arp.c with constants

Simon Glass sjg at chromium.org
Fri Apr 27 08:26:39 CEST 2012


Hi Joe,

On Wed, Mar 28, 2012 at 12:42 PM, Joe Hershberger <joe.hershberger at ni.com>wrote:

> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Joe Hershberger <joe.hershberger at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Mike Frysinger <vapier at gentoo.org>
> ---
> Changes for v2:
>   - Split from "Improve variable names and code readability"
>
>  include/net.h |    6 ++++++
>  net/arp.c     |   34 +++++++++++++++++-----------------
>  2 files changed, 23 insertions(+), 17 deletions(-)
>
> diff --git a/include/net.h b/include/net.h
> index 3314b4e..bb41f5e 100644
> --- a/include/net.h
> +++ b/include/net.h
> @@ -258,7 +258,9 @@ struct ARP_hdr {
>  #   define ARP_ETHER       1           /* Ethernet  hardware address   */
>        ushort          ar_pro;         /* Format of protocol address   */
>        uchar           ar_hln;         /* Length of hardware address   */
> +#   define ARP_HLEN    6
>        uchar           ar_pln;         /* Length of protocol address   */
> +#   define ARP_PLEN    4
>        ushort          ar_op;          /* Operation                    */
>  #   define ARPOP_REQUEST    1          /* Request  to resolve  address */
>  #   define ARPOP_REPLY     2           /* Response to previous request */
> @@ -272,6 +274,10 @@ struct ARP_hdr {
>         * specific hardware/protocol combinations.
>         */
>        uchar           ar_data[0];
> +#define ar_sha         ar_data[0]
> +#define ar_spa         ar_data[ARP_HLEN]
> +#define ar_tha         ar_data[ARP_HLEN + ARP_PLEN]
> +#define ar_tpa         ar_data[ARP_HLEN + ARP_PLEN + ARP_HLEN]
>  #if 0
>        uchar           ar_sha[];       /* Sender hardware address      */
>        uchar           ar_spa[];       /* Sender protocol address      */
> diff --git a/net/arp.c b/net/arp.c
> index f994e7d..6e3d7ab 100644
> --- a/net/arp.c
> +++ b/net/arp.c
> @@ -63,16 +63,16 @@ void ArpRequest(void)
>
>        arp->ar_hrd = htons(ARP_ETHER);
>        arp->ar_pro = htons(PROT_IP);
> -       arp->ar_hln = 6;
> -       arp->ar_pln = 4;
> +       arp->ar_hln = ARP_HLEN;
> +       arp->ar_pln = ARP_PLEN;
>        arp->ar_op = htons(ARPOP_REQUEST);
>
>        /* source ET addr */
> -       memcpy(&arp->ar_data[0], NetOurEther, 6);
> +       memcpy(&arp->ar_sha, NetOurEther, ARP_HLEN);
>        /* source IP addr */
> -       NetWriteIP((uchar *) &arp->ar_data[6], NetOurIP);
> +       NetWriteIP(&arp->ar_spa, NetOurIP);
>        /* dest ET addr = 0 */
> -       memset(&arp->ar_data[10], '\0', 6);
> +       memset(&arp->ar_tha, 0, ARP_HLEN);
>

Did you mean to change this to 0? I prefer '\0\ but I might be the only one.


>        if ((NetArpWaitPacketIP & NetOurSubnetMask) !=
>            (NetOurIP & NetOurSubnetMask)) {
>                if (NetOurGatewayIP == 0) {
> @@ -85,7 +85,7 @@ void ArpRequest(void)
>                NetArpWaitReplyIP = NetArpWaitPacketIP;
>        }
>
> -       NetWriteIP((uchar *) &arp->ar_data[16], NetArpWaitReplyIP);
> +       NetWriteIP(&arp->ar_tpa, NetArpWaitReplyIP);
>        (void) eth_send(NetTxPacket, (pkt - NetTxPacket) + ARP_HDR_SIZE);
>  }
>
> @@ -139,15 +139,15 @@ void ArpReceive(struct Ethernet_hdr *et, struct
> IP_UDP_hdr *ip, int len)
>                return;
>        if (ntohs(arp->ar_pro) != PROT_IP)
>                return;
> -       if (arp->ar_hln != 6)
> +       if (arp->ar_hln != ARP_HLEN)
>                return;
> -       if (arp->ar_pln != 4)
> +       if (arp->ar_pln != ARP_PLEN)
>                return;
>
>        if (NetOurIP == 0)
>                return;
>
> -       if (NetReadIP(&arp->ar_data[16]) != NetOurIP)
> +       if (NetReadIP(&arp->ar_tpa) != NetOurIP)
>                return;
>
>        switch (ntohs(arp->ar_op)) {
> @@ -157,10 +157,10 @@ void ArpReceive(struct Ethernet_hdr *et, struct
> IP_UDP_hdr *ip, int len)
>                pkt = (uchar *)et;
>                pkt += NetSetEther(pkt, et->et_src, PROT_ARP);
>                arp->ar_op = htons(ARPOP_REPLY);
> -               memcpy(&arp->ar_data[10], &arp->ar_data[0], 6);
> -               NetCopyIP(&arp->ar_data[16], &arp->ar_data[6]);
> -               memcpy(&arp->ar_data[0], NetOurEther, 6);
> -               NetCopyIP(&arp->ar_data[6], &NetOurIP);
> +               memcpy(&arp->ar_tha, &arp->ar_sha, ARP_HLEN);
> +               NetCopyIP(&arp->ar_tpa, &arp->ar_spa);
> +               memcpy(&arp->ar_sha, NetOurEther, ARP_HLEN);
> +               NetCopyIP(&arp->ar_spa, &NetOurIP);
>                (void) eth_send((uchar *)et,
>                                (pkt - (uchar *)et) + ARP_HDR_SIZE);
>                return;
> @@ -173,12 +173,12 @@ void ArpReceive(struct Ethernet_hdr *et, struct
> IP_UDP_hdr *ip, int len)
>  #ifdef CONFIG_KEEP_SERVERADDR
>                if (NetServerIP == NetArpWaitPacketIP) {
>                        char buf[20];
> -                       sprintf(buf, "%pM", arp->ar_data);
> +                       sprintf(buf, "%pM", arp->ar_sha);
>                        setenv("serveraddr", buf);
>                }
>  #endif
>
> -               reply_ip_addr = NetReadIP(&arp->ar_data[6]);
> +               reply_ip_addr = NetReadIP(&arp->ar_spa);
>
>                /* matched waiting packet's address */
>                if (reply_ip_addr == NetArpWaitReplyIP) {
> @@ -187,14 +187,14 @@ void ArpReceive(struct Ethernet_hdr *et, struct
> IP_UDP_hdr *ip, int len)
>
>                        /* save address for later use */
>                        memcpy(NetArpWaitPacketMAC,
> -                              &arp->ar_data[0], 6);
> +                               &arp->ar_sha, ARP_HLEN);
>
>  #ifdef CONFIG_NETCONSOLE
>                        NetGetHandler()(0, 0, 0, 0, 0);
>  #endif
>                        /* modify header, and transmit it */
>                        memcpy(((struct Ethernet_hdr *)NetArpWaitTxPacket)->
> -                               et_dest, NetArpWaitPacketMAC, 6);
> +                               et_dest, NetArpWaitPacketMAC, ARP_HLEN);
>                        (void) eth_send(NetArpWaitTxPacket,
>                                        NetArpWaitTxPacketSize);
>
> --
> 1.6.0.2
>
> Regards,
Simon


More information about the U-Boot mailing list