diff --git a/include/rtdef.h b/include/rtdef.h index 1107e3bbf657fdac433c1f769c8a7520aeecf6b4..b1d0c1abae74a4f7ba4d063d881b20fbe6864442 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -31,7 +31,7 @@ extern "C" { /*@{*/ -/* RT-Thread version information */ +/* RT-Thread version information */ #define RT_VERSION 1L /**< major version number */ #define RT_SUBVERSION 1L /**< minor version number */ #define RT_REVISION 0L /**< revise version number */ @@ -150,7 +150,7 @@ typedef rt_base_t rt_off_t; /**< Type for offset #define RT_EEMPTY 4 /**< The resource is empty */ #define RT_ENOMEM 5 /**< No memory */ #define RT_ENOSYS 6 /**< No system */ -#define RT_EBUSY 7 /**< Busy */ +#define RT_EBUSY 7 /**< Busy */ #define RT_EIO 8 /**< IO error */ /*@}*/ @@ -592,9 +592,9 @@ enum rt_device_class_type RT_Device_Class_Graphic, /**< Graphic device */ RT_Device_Class_I2C, /**< I2C device */ RT_Device_Class_USBDevice, /**< USB slave device */ - RT_Device_Class_USBHost, /**< USB host bus */ - RT_Device_Class_SPIBUS, /**< SPI bus device */ - RT_Device_Class_SPIDevice, /**< SPI device */ + RT_Device_Class_USBHost, /**< USB host bus */ + RT_Device_Class_SPIBUS, /**< SPI bus device */ + RT_Device_Class_SPIDevice, /**< SPI device */ RT_Device_Class_SDIO, /**< SDIO bus device */ RT_Device_Class_Unknown /**< unknown device */ }; @@ -781,10 +781,12 @@ struct rt_module rt_uint32_t stack_size; /**< priority of module's thread */ rt_uint32_t thread_priority; +#ifdef RT_USING_SLAB /* module memory allocator */ void *mem_list; /**< module's free memory list */ void *page_array; /**< module's using pages */ rt_uint32_t page_cnt; /**< module's using pages count */ +#endif rt_uint32_t nsym; /**< number of symbol in the module */ struct rt_module_symtab *symtab; /**< module symbol table */ diff --git a/src/module.c b/src/module.c index 390497d69dbf7120f1bda9f06b11242f818bcc95..8853919135a3f0d1d1b0e0c0e551b9601f75a4f5 100644 --- a/src/module.c +++ b/src/module.c @@ -374,15 +374,15 @@ static struct rt_module* _load_shared_object(const char *name, void *module_ptr) if (module_size == 0) { rt_kprintf(" module size error\n"); - - return module; + return RT_NULL; } /* allocate module */ module = (struct rt_module *)rt_object_allocate(RT_Object_Class_Module, name); - if (!module) - return RT_NULL; + if (!module) return RT_NULL; + module->nref = 0; + /* allocate module space */ module->module_space = rt_malloc(module_size); if (module->module_space == RT_NULL) @@ -774,10 +774,10 @@ rt_module_t rt_module_load(const char *name, void *module_ptr) if (elf_module->e_entry != 0) { +#ifdef RT_USING_SLAB /* init module memory allocator */ module->mem_list = RT_NULL; -#ifdef RT_USING_SLAB /* create page array */ module->page_array = (void *)rt_malloc(PAGE_COUNT_MAX * sizeof(struct rt_page_info)); module->page_cnt = 0; @@ -1527,7 +1527,6 @@ void *rt_module_realloc(void *ptr, rt_size_t size) } } } -#endif #ifdef RT_USING_FINSH #include @@ -1569,3 +1568,5 @@ FINSH_FUNCTION_EXPORT(list_mempage, list module using memory page information) #endif #endif + +#endif