diff --git a/ChangeLog b/ChangeLog
index 53bc8b4b3b..aa53d9383f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -277,3 +277,4 @@
* Added netdev_foreach() to support traversal of registered network devices
* Added support for 'ifconfig' command to NSH (examples/nsh)
* Moved MAC and ethernet definitions to net/ethernet.h
+ * Fix sim and DM90x0 compilation errors introduced in 0.3.4
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 39a9bd32f1..0ae087aa1c 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -971,6 +971,7 @@ Other memory:
* Added netdev_foreach() to support traversal of registered network devices
* Added support for 'ifconfig' command to NSH (examples/nsh)
* Moved MAC and ethernet definitions to net/ethernet.h
+ * Fix sim and DM90x0 compilation errors introduced in 0.3.4
diff --git a/arch/sim/src/up_uipdriver.c b/arch/sim/src/up_uipdriver.c
index d5d2ecbfc5..a035d753cb 100644
--- a/arch/sim/src/up_uipdriver.c
+++ b/arch/sim/src/up_uipdriver.c
@@ -61,7 +61,7 @@
* Private Definitions
****************************************************************************/
-#define BUF ((struct uip_eth_hdr *)g_sim_dev.d_buf)
+#define BUF ((struct ether_header*)g_sim_dev.d_buf)
/****************************************************************************
* Private Types
@@ -107,9 +107,9 @@ void timer_reset(struct timer *t)
#ifdef CONFIG_NET_PROMISCUOUS
# define up_comparemac(a,b) (0)
#else
-static inline int up_comparemac(struct ether_addr *paddr1, struct ether_addr *paddr2)
+static inline int up_comparemac(uint8 *paddr1, struct ether_addr *paddr2)
{
- return memcmp(paddr1, paddr2, sizeof(struct ether_addr));
+ return memcmp(paddr1, paddr2->ether_addr_octet, ETHER_ADDR_LEN);
}
#endif
@@ -156,14 +156,14 @@ void uipdriver_loop(void)
* MAC address
*/
- if (g_sim_dev.d_len > UIP_LLH_LEN && up_comparemac( &BUF->dest, &g_sim_dev.d_mac) == 0)
+ if (g_sim_dev.d_len > UIP_LLH_LEN && up_comparemac(BUF->ether_dhost, &g_sim_dev.d_mac) == 0)
{
/* We only accept IP packets of the configured type and ARP packets */
#ifdef CONFIG_NET_IPv6
- if (BUF->type == htons(UIP_ETHTYPE_IP6))
+ if (BUF->ether_type == htons(UIP_ETHTYPE_IP6))
#else
- if (BUF->type == htons(UIP_ETHTYPE_IP))
+ if (BUF->ether_type == htons(UIP_ETHTYPE_IP))
#endif
{
uip_arp_ipin();
@@ -180,7 +180,7 @@ void uipdriver_loop(void)
tapdev_send(g_sim_dev.d_buf, g_sim_dev.d_len);
}
}
- else if (BUF->type == htons(UIP_ETHTYPE_ARP))
+ else if (BUF->ether_type == htons(UIP_ETHTYPE_ARP))
{
uip_arp_arpin(&g_sim_dev);
@@ -202,7 +202,7 @@ void uipdriver_loop(void)
else if (timer_expired(&g_periodic_timer))
{
timer_reset(&g_periodic_timer);
- uip_poll(&g_sim_dev, sim_uiptxpoll, 1);
+ uip_timer(&g_sim_dev, sim_uiptxpoll, 1);
}
sched_unlock();
}
diff --git a/drivers/net/dm90x0.c b/drivers/net/dm90x0.c
index 3fbb0f1f40..746aef8499 100644
--- a/drivers/net/dm90x0.c
+++ b/drivers/net/dm90x0.c
@@ -1106,7 +1106,7 @@ static void dm9x_txdone(struct dm9x_driver_s *dm9x)
static int dm9x_interrupt(int irq, FAR void *context)
{
-#if CONFIG_C5471_NET_NINTERFACES == 1
+#if CONFIG_DM9X_NINTERFACES == 1
register struct dm9x_driver_s *dm9x = &g_dm9x[0];
#else
# error "Additional logic needed to support multiple interfaces"
diff --git a/examples/uip/main.c b/examples/uip/main.c
index b20b6c8265..fd67ff95ff 100644
--- a/examples/uip/main.c
+++ b/examples/uip/main.c
@@ -230,7 +230,9 @@ int user_start(int argc, char *argv[])
{
sleep(3);
printf("main: Still running\n");
+#if CONFIG_NFILE_DESCRIPTORS > 0
fflush(stdout);
+#endif
}
return 0;
}
diff --git a/netutils/webserver/httpd-cgi.c b/netutils/webserver/httpd-cgi.c
index 9561d19896..baf671fa8e 100644
--- a/netutils/webserver/httpd-cgi.c
+++ b/netutils/webserver/httpd-cgi.c
@@ -166,11 +166,12 @@ static void net_stats(struct httpd_state *pstate, char *ptr)
{
#ifdef CONFIG_NET_STATISTICS
char buffer[16];
+ int i;
- for(pstate->count = 0; pstate->count < sizeof(uip_stat) / sizeof(uip_stats_t); ++pstate->count)
+ for (i = 0; i < sizeof(uip_stat) / sizeof(uip_stats_t); i++)
{
- snprintf(buffer, 16, "%5u\n", ((uip_stats_t *)&uip_stat)[pstate->count]);
- send(pstate->sockout, buffer, strlen(buffer), 0);
+ snprintf(buffer, 16, "%5u\n", ((uip_stats_t *)&uip_stat)[i]);
+ send(pstate->ht_sockfd, buffer, strlen(buffer), 0);
}
#endif
}