From 2f409c85f1faf3662c9ee99eed78e460286ec046 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Tue, 12 Dec 2017 07:36:37 +0800 Subject: [PATCH] [Kernel] Use rt_object_get_information to get object chain --- components/dfs/filesystems/devfs/devfs.c | 5 ++--- components/net/lwip-1.3.2/src/arch/sys_arch_init.c | 6 +++--- components/net/lwip-1.4.1/src/arch/sys_arch.c | 5 ++--- components/net/lwip-2.0.2/src/arch/sys_arch.c | 5 ++--- src/memheap.c | 4 ++-- src/thread.c | 5 ++--- 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/components/dfs/filesystems/devfs/devfs.c b/components/dfs/filesystems/devfs/devfs.c index 6bfeccb578..4f2f0ebcd9 100644 --- a/components/dfs/filesystems/devfs/devfs.c +++ b/components/dfs/filesystems/devfs/devfs.c @@ -150,13 +150,12 @@ int dfs_device_fs_open(struct dfs_fd *file) struct device_dirent *root_dirent; rt_uint32_t count = 0; - extern struct rt_object_information rt_object_container[]; - /* lock scheduler */ rt_enter_critical(); /* traverse device object */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) { count ++; diff --git a/components/net/lwip-1.3.2/src/arch/sys_arch_init.c b/components/net/lwip-1.3.2/src/arch/sys_arch_init.c index 73aa34171c..f70de7cc0a 100644 --- a/components/net/lwip-1.3.2/src/arch/sys_arch_init.c +++ b/components/net/lwip-1.3.2/src/arch/sys_arch_init.c @@ -41,8 +41,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -53,7 +51,9 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); + for (node = information->object_list.next; node != &(information->object_list); node = node->next) { object = rt_list_entry(node, struct rt_object, list); diff --git a/components/net/lwip-1.4.1/src/arch/sys_arch.c b/components/net/lwip-1.4.1/src/arch/sys_arch.c index 3ae6360198..d480242cd0 100644 --- a/components/net/lwip-1.4.1/src/arch/sys_arch.c +++ b/components/net/lwip-1.4.1/src/arch/sys_arch.c @@ -72,8 +72,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -84,7 +82,8 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) 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 06198d5191..c8e1fe1d33 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 @@ -74,8 +74,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -86,7 +84,8 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/src/memheap.c b/src/memheap.c index 8b7588a068..dcd9114620 100644 --- a/src/memheap.c +++ b/src/memheap.c @@ -620,10 +620,10 @@ void *rt_malloc(rt_size_t size) struct rt_list_node *node; struct rt_memheap *heap; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; /* try to allocate on other memory heap */ - information = &rt_object_container[RT_Object_Class_MemHeap]; + information = rt_object_get_information(RT_Object_Class_MemHeap); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/src/thread.c b/src/thread.c index c39d689e0f..3a3e55302e 100644 --- a/src/thread.c +++ b/src/thread.c @@ -750,14 +750,13 @@ rt_thread_t rt_thread_find(char *name) struct rt_object *object; struct rt_list_node *node; - extern struct rt_object_information rt_object_container[]; - /* enter critical */ if (rt_thread_self() != RT_NULL) rt_enter_critical(); /* try to find device object */ - information = &rt_object_container[RT_Object_Class_Thread]; + information = rt_object_get_information(RT_Object_Class_Thread); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) -- GitLab