Browse Source

Merge pull request #1135 from BernardXiong/master

[Kernel] Fix the module object initialization issue
Bernard Xiong 7 years ago
parent
commit
cc183a8d01
1 changed files with 16 additions and 0 deletions
  1. 16 0
      src/module.c

+ 16 - 0
src/module.c

@@ -307,45 +307,61 @@ void rt_module_init_object_container(struct rt_module *module)
     module->module_object[RT_Object_Class_Thread].object_size = sizeof(struct rt_thread);
     module->module_object[RT_Object_Class_Thread].type = RT_Object_Class_Thread;
 
+#ifdef RT_USING_SEMAPHORE
     /* initialize object container - semaphore */
     rt_list_init(&(module->module_object[RT_Object_Class_Semaphore].object_list));
     module->module_object[RT_Object_Class_Semaphore].object_size = sizeof(struct rt_semaphore);
     module->module_object[RT_Object_Class_Semaphore].type = RT_Object_Class_Semaphore;
+#endif
 
+#ifdef RT_USING_MUTEX
     /* initialize object container - mutex */
     rt_list_init(&(module->module_object[RT_Object_Class_Mutex].object_list));
     module->module_object[RT_Object_Class_Mutex].object_size = sizeof(struct rt_mutex);
     module->module_object[RT_Object_Class_Mutex].type = RT_Object_Class_Mutex;
+#endif
 
+#ifdef RT_USING_EVENT
     /* initialize object container - event */
     rt_list_init(&(module->module_object[RT_Object_Class_Event].object_list));
     module->module_object[RT_Object_Class_Event].object_size = sizeof(struct rt_event);
     module->module_object[RT_Object_Class_Event].type = RT_Object_Class_Event;
+#endif
 
+#ifdef RT_USING_MAILBOX
     /* initialize object container - mailbox */
     rt_list_init(&(module->module_object[RT_Object_Class_MailBox].object_list));
     module->module_object[RT_Object_Class_MailBox].object_size = sizeof(struct rt_mailbox);
     module->module_object[RT_Object_Class_MailBox].type = RT_Object_Class_MailBox;
+#endif
 
+#ifdef RT_USING_MESSAGEQUEUE
     /* initialize object container - message queue */
     rt_list_init(&(module->module_object[RT_Object_Class_MessageQueue].object_list));
     module->module_object[RT_Object_Class_MessageQueue].object_size = sizeof(struct rt_messagequeue);
     module->module_object[RT_Object_Class_MessageQueue].type = RT_Object_Class_MessageQueue;
+#endif
 
+#ifdef RT_USING_MEMHEAP
     /* initialize object container - memory heap */
     rt_list_init(&(module->module_object[RT_Object_Class_MemHeap].object_list));
     module->module_object[RT_Object_Class_MemHeap].object_size = sizeof(struct rt_memheap);
     module->module_object[RT_Object_Class_MemHeap].type = RT_Object_Class_MemHeap;
+#endif
 
+#ifdef RT_USING_MEMPOOL
     /* initialize object container - memory pool */
     rt_list_init(&(module->module_object[RT_Object_Class_MemPool].object_list));
     module->module_object[RT_Object_Class_MemPool].object_size = sizeof(struct rt_mempool);
     module->module_object[RT_Object_Class_MemPool].type = RT_Object_Class_MemPool;
+#endif
 
+#ifdef RT_USING_DEVICE
     /* initialize object container - device */
     rt_list_init(&(module->module_object[RT_Object_Class_Device].object_list));
     module->module_object[RT_Object_Class_Device].object_size = sizeof(struct rt_device);
     module->module_object[RT_Object_Class_Device].type = RT_Object_Class_Device;
+#endif
 
     /* initialize object container - timer */
     rt_list_init(&(module->module_object[RT_Object_Class_Timer].object_list));