summaryrefslogtreecommitdiff
path: root/include/rtdef.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/rtdef.h')
-rw-r--r--include/rtdef.h32
1 files changed, 27 insertions, 5 deletions
diff --git a/include/rtdef.h b/include/rtdef.h
index 4e414d3041..b85f0b8b84 100644
--- a/include/rtdef.h
+++ b/include/rtdef.h
@@ -360,17 +360,37 @@ struct rt_thread
};
/*@}*/
-/* module clean types */
-#define RT_MODULE_FLAG_AUTO_CLEAN 0x01 /* auto clean */
-#define RT_MODULE_FLAG_MANUAL_CLEAN 0x02 /* manual clean */
-
#ifdef RT_USING_MODULE
+/*
+ * module system
+ */
+enum rt_module_class_type
+{
+ RT_Module_Class_APP = 0, /* application module */
+ RT_Module_Class_EXTENSION,
+ RT_Module_Class_SERVICE, /* service module */
+ RT_Module_Class_Unknown /* unknown module */
+};
+
+struct rt_module_info
+{
+ /* export interface */
+ void *module_interface;
+ /* refence count */
+ rt_uint32_t module_refs;
+ /* module type */
+ enum rt_module_class_type module_type;
+ /* module guid */
+ rt_uint32_t module_guid;
+ /* application entry */
+ void* exec_entry;
+};
+
struct rt_module
{
/* inherit from object */
struct rt_object parent;
- rt_uint32_t module_data;
void* module_space;
void* module_entry;
@@ -382,6 +402,8 @@ struct rt_module
rt_uint32_t mempool_size;
void* module_mempool;
+ struct rt_module_info *module_info;
+
/* object in this module, module object is the last basic object type */
struct rt_object_information module_object[RT_Object_Class_Module];
};