changed uip_buf to a union for 32-bit alignment
This commit is contained in:
parent
9db7f06368
commit
2d447502d4
|
@ -32,7 +32,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sicslowpan.c,v 1.39 2010/05/11 10:02:29 nifi Exp $
|
* $Id: sicslowpan.c,v 1.40 2010/05/24 10:07:34 joxe Exp $
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* \file
|
* \file
|
||||||
|
@ -157,8 +157,8 @@ void uip_log(char *msg);
|
||||||
/** \name Pointers in the sicslowpan and uip buffer
|
/** \name Pointers in the sicslowpan and uip buffer
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#define SICSLOWPAN_IP_BUF ((struct uip_ip_hdr *)&sicslowpan_buf[UIP_LLH_LEN])
|
#define SICSLOWPAN_IP_BUF ((struct uip_ip_hdr *)&sicslowpan_buf.u8[UIP_LLH_LEN])
|
||||||
#define SICSLOWPAN_UDP_BUF ((struct uip_udp_hdr *)&sicslowpan_buf[UIP_LLIPH_LEN])
|
#define SICSLOWPAN_UDP_BUF ((struct uip_udp_hdr *)&sicslowpan_buf.u8[UIP_LLIPH_LEN])
|
||||||
|
|
||||||
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
|
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
|
||||||
#define UIP_UDP_BUF ((struct uip_udp_hdr *)&uip_buf[UIP_LLIPH_LEN])
|
#define UIP_UDP_BUF ((struct uip_udp_hdr *)&uip_buf[UIP_LLIPH_LEN])
|
||||||
|
@ -221,9 +221,7 @@ static u16_t sicslowpan_len;
|
||||||
* It has a fix size as we do not use dynamic memory allocation.
|
* It has a fix size as we do not use dynamic memory allocation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Allocate buffer as 32 bit to ensure that it is 32-bit aligned */
|
static uip_buf_t sicslowpan_buf;
|
||||||
static uint32_t uip_buf32[(UIP_BUFSIZE + 3) / 4];
|
|
||||||
static uint8_t * const sicslowpan_buf = (uint8_t * const) uip_buf32;
|
|
||||||
|
|
||||||
/** The total length of the IPv6 packet in the sicslowpan_buf. */
|
/** The total length of the IPv6 packet in the sicslowpan_buf. */
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the uIP TCP/IP stack.
|
* This file is part of the uIP TCP/IP stack.
|
||||||
*
|
*
|
||||||
* $Id: uip.c,v 1.27 2010/05/08 07:23:55 oliverschmidt Exp $
|
* $Id: uip.c,v 1.28 2010/05/24 10:07:34 joxe Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -126,13 +126,11 @@ const struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,
|
||||||
struct uip_eth_addr uip_ethaddr = {{0,0,0,0,0,0}};
|
struct uip_eth_addr uip_ethaddr = {{0,0,0,0,0,0}};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The packet buffer that contains incoming packets. */
|
||||||
#ifdef UIP_CONF_PLAIN_BUFFER
|
#ifdef UIP_CONF_PLAIN_BUFFER
|
||||||
uint8_t uip_buf[UIP_BUFSIZE + 2];
|
uint8_t uip_buf[UIP_BUFSIZE + 2];
|
||||||
#else /* UIP_CONF_PLAIN_BUFFER */
|
#else /* UIP_CONF_PLAIN_BUFFER */
|
||||||
static uint32_t uip_buf32[(UIP_BUFSIZE + 3) / 4];
|
uip_buf_t uip_aligned_buf;
|
||||||
uint8_t * const uip_buf = (uint8_t * const)uip_buf32;
|
|
||||||
/* The packet buffer that contains
|
|
||||||
incoming packets. */
|
|
||||||
#endif /* UIP_CONF_PLAIN_BUFFER */
|
#endif /* UIP_CONF_PLAIN_BUFFER */
|
||||||
|
|
||||||
void *uip_appdata; /* The uip_appdata pointer points to
|
void *uip_appdata; /* The uip_appdata pointer points to
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the uIP TCP/IP stack.
|
* This file is part of the uIP TCP/IP stack.
|
||||||
*
|
*
|
||||||
* $Id: uip.h,v 1.32 2010/05/08 07:23:55 oliverschmidt Exp $
|
* $Id: uip.h,v 1.33 2010/05/24 10:07:34 joxe Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -476,10 +476,17 @@ void uip_reass_over(void);
|
||||||
}
|
}
|
||||||
\endcode
|
\endcode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
uint32_t u32[(UIP_BUFSIZE + 3) / 4];
|
||||||
|
uint8_t u8[UIP_BUFSIZE];
|
||||||
|
} uip_buf_t;
|
||||||
|
|
||||||
#ifdef UIP_CONF_PLAIN_BUFFER
|
#ifdef UIP_CONF_PLAIN_BUFFER
|
||||||
CCIF extern uint8_t uip_buf[UIP_BUFSIZE+2];
|
CCIF extern uint8_t uip_buf[UIP_BUFSIZE+2];
|
||||||
#else /* UIP_CONF_PLAIN_BUFFER */
|
#else /* UIP_CONF_PLAIN_BUFFER */
|
||||||
CCIF extern uint8_t * const uip_buf;
|
CCIF extern uip_buf_t uip_aligned_buf;
|
||||||
|
#define uip_buf (uip_aligned_buf.u8)
|
||||||
#endif /* UIP_CONF_PLAIN_BUFFER */
|
#endif /* UIP_CONF_PLAIN_BUFFER */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the uIP TCP/IP stack.
|
* This file is part of the uIP TCP/IP stack.
|
||||||
*
|
*
|
||||||
* $Id: uip6.c,v 1.22 2010/05/07 20:45:16 oliverschmidt Exp $
|
* $Id: uip6.c,v 1.23 2010/05/24 10:07:34 joxe Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -170,11 +170,9 @@ u8_t uip_ext_opt_offset = 0;
|
||||||
*/
|
*/
|
||||||
/** Packet buffer for incoming and outgoing packets */
|
/** Packet buffer for incoming and outgoing packets */
|
||||||
#ifndef UIP_CONF_EXTERNAL_BUFFER
|
#ifndef UIP_CONF_EXTERNAL_BUFFER
|
||||||
static uint32_t uip_buf32[(UIP_BUFSIZE + 3) / 4];
|
uip_buf_t uip_aligned_buf;
|
||||||
#endif /* UIP_CONF_EXTERNAL_BUFFER */
|
#endif /* UIP_CONF_EXTERNAL_BUFFER */
|
||||||
|
|
||||||
uint8_t * const uip_buf = (uint8_t * const) uip_buf32;
|
|
||||||
|
|
||||||
/* The uip_appdata pointer points to application data. */
|
/* The uip_appdata pointer points to application data. */
|
||||||
void *uip_appdata;
|
void *uip_appdata;
|
||||||
/* The uip_appdata pointer points to the application data which is to be sent*/
|
/* The uip_appdata pointer points to the application data which is to be sent*/
|
||||||
|
|
Loading…
Reference in a new issue