diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-03-08 14:42:36 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-03-08 14:42:36 +0000 |
commit | 7507485356f2bdf02f95194438c4fafc7aa7db13 (patch) | |
tree | bdcafaeda3addd9f5c24f43aa692c3cb0d29f7e5 /nuttx/net/uip/uip_chksum.c | |
parent | 99c28e14199f709222988dbb7e8c589b48a94206 (diff) | |
download | nuttx-7507485356f2bdf02f95194438c4fafc7aa7db13.tar.gz nuttx-7507485356f2bdf02f95194438c4fafc7aa7db13.tar.bz2 nuttx-7507485356f2bdf02f95194438c4fafc7aa7db13.zip |
Changes to work around bug in ZDS compiler
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1575 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/net/uip/uip_chksum.c')
-rw-r--r-- | nuttx/net/uip/uip_chksum.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/nuttx/net/uip/uip_chksum.c b/nuttx/net/uip/uip_chksum.c index 474dae576..defb5b479 100644 --- a/nuttx/net/uip/uip_chksum.c +++ b/nuttx/net/uip/uip_chksum.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/uip/uip_chksum.c * - * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * @@ -105,13 +105,14 @@ static uint16 chksum(uint16 sum, const uint8 *data, uint16 len) static uint16 upper_layer_chksum(struct uip_driver_s *dev, uint8 proto) { + struct uip_ip_hdr *pbuf = BUF; uint16 upper_layer_len; uint16 sum; #ifdef CONFIG_NET_IPv6 - upper_layer_len = (((uint16)(BUF->len[0]) << 8) + BUF->len[1]); + upper_layer_len = (((uint16)(pbuf->len[0]) << 8) + pbuf->len[1]); #else /* CONFIG_NET_IPv6 */ - upper_layer_len = (((uint16)(BUF->len[0]) << 8) + BUF->len[1]) - UIP_IPH_LEN; + upper_layer_len = (((uint16)(pbuf->len[0]) << 8) + pbuf->len[1]) - UIP_IPH_LEN; #endif /* CONFIG_NET_IPv6 */ /* First sum pseudoheader. */ @@ -122,7 +123,7 @@ static uint16 upper_layer_chksum(struct uip_driver_s *dev, uint8 proto) /* Sum IP source and destination addresses. */ - sum = chksum(sum, (uint8 *)&BUF->srcipaddr, 2 * sizeof(uip_ipaddr_t)); + sum = chksum(sum, (uint8 *)&pbuf->srcipaddr, 2 * sizeof(uip_ipaddr_t)); /* Sum TCP header and data. */ @@ -231,7 +232,8 @@ uint16 uip_udpchksum(struct uip_driver_s *dev) #if defined(CONFIG_NET_ICMP) && defined(CONFIG_NET_ICMP_PING) uint16 uip_icmpchksum(struct uip_driver_s *dev) { - return uip_chksum((uint16*)&ICMPBUF->type, dev->d_sndlen); + struct uip_icmpip_hdr *picmp = ICMPBUF; + return uip_chksum((uint16*)&picmp->type, dev->d_sndlen); } #endif |