浏览代码

open LWIP_NETIF_LINK_CALLBACK definitions

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1573 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong@gmail.com 14 年之前
父节点
当前提交
217c6d88f5
共有 3 个文件被更改,包括 41 次插入93 次删除
  1. 17 87
      components/net/lwip/src/arch/sys_arch.c
  2. 8 6
      components/net/lwip/src/lwipopts.h
  3. 16 0
      components/net/lwip/src/netif/ethernetif.c

+ 17 - 87
components/net/lwip/src/arch/sys_arch.c

@@ -9,6 +9,7 @@
 #include <string.h>
 #include <string.h>
 
 
 #define LWIP_THREAD_MAGIC	0x1919
 #define LWIP_THREAD_MAGIC	0x1919
+#define LWIP_THREAD_NAME	(rt_thread_self()->name)
 struct lwip_thread
 struct lwip_thread
 {
 {
 	rt_uint32_t magic;
 	rt_uint32_t magic;
@@ -31,14 +32,7 @@ sys_sem_t sys_sem_new(u8_t count)
 
 
 	rt_snprintf(tname, RT_NAME_MAX, "%s%d", SYS_LWIP_SEM_NAME, counter);
 	rt_snprintf(tname, RT_NAME_MAX, "%s%d", SYS_LWIP_SEM_NAME, counter);
 
 
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-
-		thread = rt_thread_self();
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Create sem: %s \n",thread->name, tname));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Create sem: %s \n", LWIP_THREAD_NAME, tname));
 
 
 	counter++;
 	counter++;
 
 
@@ -47,15 +41,8 @@ sys_sem_t sys_sem_new(u8_t count)
 
 
 void sys_sem_free(sys_sem_t sem)
 void sys_sem_free(sys_sem_t sem)
 {
 {
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Delete sem: %s \n",thread->name,
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Delete sem: %s \n", LWIP_THREAD_NAME,
 			sem->parent.parent.name));
 			sem->parent.parent.name));
-	}
-#endif
 
 
 	rt_sem_delete(sem);
 	rt_sem_delete(sem);
 
 
@@ -64,15 +51,8 @@ void sys_sem_free(sys_sem_t sem)
 
 
 void sys_sem_signal(sys_sem_t sem)
 void sys_sem_signal(sys_sem_t sem)
 {
 {
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Release signal: %s , %d\n",thread->name,
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Release signal: %s , %d\n", LWIP_THREAD_NAME,
 			sem->parent.parent.name, sem->value));
 			sem->parent.parent.name, sem->value));
-	}
-#endif
 
 
 	rt_sem_release(sem);
 	rt_sem_release(sem);
 
 
@@ -87,15 +67,8 @@ u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout)
 
 
 	/* get the begin tick */
 	/* get the begin tick */
 	tick = rt_tick_get();
 	tick = rt_tick_get();
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Wait sem: %s , %d\n",thread->name,
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Wait sem: %s , %d\n", LWIP_THREAD_NAME,
 			sem->parent.parent.name, sem->value));
 			sem->parent.parent.name, sem->value));
-	}
-#endif
 
 
 	if(timeout == 0)
 	if(timeout == 0)
 		t = RT_WAITING_FOREVER;
 		t = RT_WAITING_FOREVER;
@@ -127,15 +100,7 @@ sys_mbox_t sys_mbox_new(int size)
 	char tname[RT_NAME_MAX];
 	char tname[RT_NAME_MAX];
 
 
 	rt_snprintf(tname, RT_NAME_MAX, "%s%d", SYS_LWIP_MBOX_NAME, counter);
 	rt_snprintf(tname, RT_NAME_MAX, "%s%d", SYS_LWIP_MBOX_NAME, counter);
-
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Create mbox: %s \n",thread->name, tname));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Create mbox: %s \n", LWIP_THREAD_NAME, tname));
 
 
 	counter++;
 	counter++;
 
 
@@ -144,15 +109,8 @@ sys_mbox_t sys_mbox_new(int size)
 
 
 void sys_mbox_free(sys_mbox_t mbox)
 void sys_mbox_free(sys_mbox_t mbox)
 {
 {
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Delete mbox: %s\n",thread->name,
-			mbox->parent.parent.name));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Delete mbox: %s\n", LWIP_THREAD_NAME,
+		mbox->mb->parent.parent.name));
 
 
 	rt_mb_delete(mbox);
 	rt_mb_delete(mbox);
 
 
@@ -161,32 +119,18 @@ void sys_mbox_free(sys_mbox_t mbox)
 
 
 void sys_mbox_post(sys_mbox_t mbox, void *msg)
 void sys_mbox_post(sys_mbox_t mbox, void *msg)
 {
 {
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Post mail: %s ,0x%x\n", LWIP_THREAD_NAME,
+		mbox->mb->parent.parent.name, (rt_uint32_t)msg));
 
 
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Post mail: %s ,0x%x\n",thread->name,
-			mbox->parent.parent.name, (rt_uint32_t)msg));
-	}
-#endif
-
-	rt_mb_send(mbox, (rt_uint32_t)msg);
+	rt_mb_send_wait(mbox, (rt_uint32_t)msg, RT_WAITING_FOREVER);
 
 
 	return;
 	return;
 }
 }
 
 
 err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg)
 err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg)
 {
 {
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Post mail: %s ,0x%x\n",thread->name,
-			mbox->parent.parent.name, (rt_uint32_t)msg));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Try post mail: %s ,0x%x\n", LWIP_THREAD_NAME,
+		mbox->mb->parent.parent.name, (rt_uint32_t)msg));
 
 
 	if (rt_mb_send(mbox, (rt_uint32_t)msg) == RT_EOK) return ERR_OK;
 	if (rt_mb_send(mbox, (rt_uint32_t)msg) == RT_EOK) return ERR_OK;
 
 
@@ -216,15 +160,8 @@ u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout)
 	if(ret == -RT_ETIMEOUT) return SYS_ARCH_TIMEOUT;
 	if(ret == -RT_ETIMEOUT) return SYS_ARCH_TIMEOUT;
 	else if (ret == RT_EOK) ret = 1;
 	else if (ret == RT_EOK) ret = 1;
 
 
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Fetch mail: %s , 0x%x\n",thread->name,
-			mbox->parent.parent.name, *(rt_uint32_t **)msg));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Fetch mail: %s , 0x%x\n", LWIP_THREAD_NAME,
+		mbox->mb->parent.parent.name, *(rt_uint32_t **)msg));
 
 
 	/* get elapse msecond */
 	/* get elapse msecond */
 	tick = rt_tick_get() - tick;
 	tick = rt_tick_get() - tick;
@@ -245,15 +182,8 @@ u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg)
 	if(ret == -RT_ETIMEOUT) return SYS_ARCH_TIMEOUT;
 	if(ret == -RT_ETIMEOUT) return SYS_ARCH_TIMEOUT;
 	else if (ret == RT_EOK) ret = 1;
 	else if (ret == RT_EOK) ret = 1;
 
 
-#if SYS_DEBUG
-	{
-		struct rt_thread *thread;
-		thread = rt_thread_self();
-
-		LWIP_DEBUGF(SYS_DEBUG, ("%s, Fetch mail: %s , 0x%x\n",thread->name,
-			mbox->parent.parent.name, *(rt_uint32_t **)msg));
-	}
-#endif
+	LWIP_DEBUGF(SYS_DEBUG, ("%s, Fetch mail: %s , 0x%x\n", LWIP_THREAD_NAME,
+		mbox->mb->parent.parent.name, *(rt_uint32_t **)msg));
 
 
 	return ret;
 	return ret;
 }
 }

+ 8 - 6
components/net/lwip/src/lwipopts.h

@@ -89,13 +89,13 @@
 #define MEM_LIBC_MALLOC             1
 #define MEM_LIBC_MALLOC             1
 #define mem_malloc                  rt_malloc
 #define mem_malloc                  rt_malloc
 #define mem_free                    rt_free
 #define mem_free                    rt_free
-#define mem_calloc                  rt_calloc
-
+#define mem_calloc                  rt_calloc
+
 #ifdef RT_LWIP_USING_RT_MEM
 #ifdef RT_LWIP_USING_RT_MEM
-#define MEMP_MEM_MALLOC				1
-#else
-#define MEMP_MEM_MALLOC				0
-#endif
+#define MEMP_MEM_MALLOC				1
+#else
+#define MEMP_MEM_MALLOC				0
+#endif
 
 
 /* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application
 /* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application
    sends a lot of data out of ROM (or other static memory), this
    sends a lot of data out of ROM (or other static memory), this
@@ -155,6 +155,8 @@
 #define ETH_PAD_SIZE				RT_LWIP_ETH_PAD_SIZE
 #define ETH_PAD_SIZE				RT_LWIP_ETH_PAD_SIZE
 #endif
 #endif
 
 
+#define LWIP_NETIF_LINK_CALLBACK	1
+
 /** SYS_LIGHTWEIGHT_PROT
 /** SYS_LIGHTWEIGHT_PROT
  * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection
  * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection
  * for certain critical regions during buffer allocation, deallocation and memory
  * for certain critical regions during buffer allocation, deallocation and memory

+ 16 - 0
components/net/lwip/src/netif/ethernetif.c

@@ -352,7 +352,23 @@ FINSH_FUNCTION_EXPORT(set_dns, set DNS server address);
 
 
 void list_if()
 void list_if()
 {
 {
+	rt_ubase_t index;
+
 	rt_kprintf("Default network interface: %c%c\n", netif_default->name[0], netif_default->name[1]);
 	rt_kprintf("Default network interface: %c%c\n", netif_default->name[0], netif_default->name[1]);
+	rt_kprintf("MTU: %d\n", netif_default->mtu);
+	rt_kprintf("MAC: ");
+	for (index = 0; index < netif_default->hwaddr_len; index ++)
+		rt_kprintf("%02x ", netif_default->hwaddr[index]);
+	rt_kprintf("\nFLAGS:");
+	if (netif_default->flags & NETIF_FLAG_UP) rt_kprintf(" UP");
+	else rt_kprintf(" DOWN");
+	if (netif_default->flags & NETIF_FLAG_LINK_UP) rt_kprintf(" LINK_UP");
+	else rt_kprintf(" LINK_DOWN");
+	if (netif_default->flags & NETIF_FLAG_DHCP) rt_kprintf(" DHCP");
+	if (netif_default->flags & NETIF_FLAG_POINTTOPOINT) rt_kprintf(" PPP");
+	if (netif_default->flags & NETIF_FLAG_ETHARP) rt_kprintf(" ETHARP");
+	if (netif_default->flags & NETIF_FLAG_IGMP) rt_kprintf(" IGMP");
+	rt_kprintf("\n");
 	rt_kprintf("ip address: %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->ip_addr))));
 	rt_kprintf("ip address: %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->ip_addr))));
 	rt_kprintf("gw address: %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->gw))));
 	rt_kprintf("gw address: %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->gw))));
 	rt_kprintf("net mask  : %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->netmask))));
 	rt_kprintf("net mask  : %s\n", inet_ntoa(*((struct in_addr*)&(netif_default->netmask))));