Skip to content

Commit f38b5a9

Browse files
Add priority & stack_size parameters for dlmodule custom
1 parent 2a175fa commit f38b5a9

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

components/libc/libdl/dlmodule.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,7 @@ struct rt_dlmodule* dlmodule_load_custom(const char* filename, struct rt_dlmodul
709709
struct rt_dlmodule* dlmodule_exec_custom(const char* pgname, const char* cmd, int cmd_size, struct rt_dlmodule_ops* ops)
710710
{
711711
struct rt_dlmodule *module = RT_NULL;
712+
rt_uint32_t tick = 10;
712713

713714
module = dlmodule_load_custom(pgname, ops);
714715
if (module)
@@ -721,11 +722,14 @@ struct rt_dlmodule* dlmodule_exec_custom(const char* pgname, const char* cmd, in
721722
module->cmd_line = rt_strdup(cmd);
722723

723724
/* check stack size and priority */
725+
if (ops->priority) module->priority = ops->priority;
726+
if (ops->stack_size) module->stack_size = ops->stack_size;
727+
if (ops->tick) tick = ops->tick;
724728
if (module->priority > RT_THREAD_PRIORITY_MAX) module->priority = RT_THREAD_PRIORITY_MAX - 1;
725729
if (module->stack_size < 2048 || module->stack_size > (1024 * 32)) module->stack_size = 2048;
726730

727731
tid = rt_thread_create(module->parent.name, _dlmodule_thread_entry, (void*)module,
728-
module->stack_size, module->priority, 10);
732+
module->stack_size, module->priority, tick);
729733
if (tid)
730734
{
731735
tid->module_id = module;

components/libc/libdl/dlmodule.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ struct rt_dlmodule_ops
6363
{
6464
rt_uint8_t *(*load)(const char* filename); /* load dlmodule file data */
6565
rt_err_t (*unload)(rt_uint8_t *param); /* unload dlmodule file data */
66+
67+
rt_uint16_t priority;
68+
rt_uint32_t stack_size;
69+
rt_uint32_t tick;
6670
};
6771

6872
struct rt_dlmodule *dlmodule_create(void);

0 commit comments

Comments
 (0)