From 730981ec42f535a285fe3c5316e5931560b17832 Mon Sep 17 00:00:00 2001 From: armink Date: Fri, 13 Jul 2018 09:59:03 +0800 Subject: [PATCH] [components] Update dfs and lwIP 2.0.2 re-initialization process. --- components/dfs/src/dfs.c | 20 ++++++++++--------- components/net/lwip-2.0.2/src/arch/sys_arch.c | 13 ++++++------ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c index 459ab52793..e73c6e3794 100644 --- a/components/dfs/src/dfs.c +++ b/components/dfs/src/dfs.c @@ -55,15 +55,15 @@ static int fd_alloc(struct dfs_fdtable *fdt, int startfd); /** * this function will initialize device file system. */ -static volatile uint8_t init_ok = 0; int dfs_init(void) { - if(init_ok) + static rt_bool_t init_ok = RT_FALSE; + + if (init_ok) { rt_kprintf("dfs already init.\n"); - return 0; + return 0; } - init_ok = 1; /* clear filesystem operations table */ memset((void *)filesystem_operation_table, 0, sizeof(filesystem_operation_table)); @@ -92,6 +92,8 @@ int dfs_init(void) } #endif + init_ok = RT_TRUE; + return 0; } INIT_PREV_EXPORT(dfs_init); @@ -505,13 +507,13 @@ struct dfs_fdtable* dfs_fdtable_get(void) { struct dfs_fdtable *fdt; #ifdef RT_USING_LWP - struct rt_lwp *lwp; + struct rt_lwp *lwp; - lwp = (struct rt_lwp *)rt_thread_self()->user_data; + lwp = (struct rt_lwp *)rt_thread_self()->user_data; if (lwp) - fdt = &lwp->fdt; - else - fdt = &_fdtab; + fdt = &lwp->fdt; + else + fdt = &_fdtab; #else fdt = &_fdtab; #endif diff --git a/components/net/lwip-2.0.2/src/arch/sys_arch.c b/components/net/lwip-2.0.2/src/arch/sys_arch.c index 316b970048..97d962e63e 100644 --- a/components/net/lwip-2.0.2/src/arch/sys_arch.c +++ b/components/net/lwip-2.0.2/src/arch/sys_arch.c @@ -98,7 +98,7 @@ static void tcpip_init_done_callback(void *arg) /* leave critical */ rt_exit_critical(); - LOCK_TCPIP_CORE(); + LOCK_TCPIP_CORE(); netif_add(ethif->netif, &ipaddr, &netmask, &gw, ethif, netif_device_init, tcpip_input); @@ -121,7 +121,7 @@ static void tcpip_init_done_callback(void *arg) netif_set_link_up(ethif->netif); } - UNLOCK_TCPIP_CORE(); + UNLOCK_TCPIP_CORE(); /* enter critical */ rt_enter_critical(); } @@ -136,18 +136,17 @@ static void tcpip_init_done_callback(void *arg) * LwIP system initialization */ extern int eth_system_device_init_private(void); -static volatile uint8_t init_ok = 0; int lwip_system_init(void) { rt_err_t rc; struct rt_semaphore done_sem; + static rt_bool_t init_ok = RT_FALSE; - if(init_ok) + if (init_ok) { rt_kprintf("lwip system already init.\n"); - return 0; + return 0; } - init_ok = 1; eth_system_device_init_private(); @@ -189,6 +188,8 @@ int lwip_system_init(void) #endif rt_kprintf("lwIP-%d.%d.%d initialized!\n", LWIP_VERSION_MAJOR, LWIP_VERSION_MINOR, LWIP_VERSION_REVISION); + init_ok = RT_TRUE; + return 0; } INIT_PREV_EXPORT(lwip_system_init); -- GitLab