diff options
| author | Man, Jianting (Meco) <[email protected]> | 2022-12-20 22:36:32 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-12-20 22:36:32 -0500 |
| commit | 061af7b0925c55be4d8fb55651091937bf0c8c69 (patch) | |
| tree | 8c1286456fd7e059e5e8ea0cca32b10860afdb67 /src/object.c | |
| parent | 91cdcea9004fcb0b3dbbc830774f5300d0280487 (diff) | |
[kenel] add static name for rt_object (#6422)
增加静态object 名字,用户可以根据内存实际使用情况决定使用动态还是静态。适用于资源极度受限的情况下使用。该功能在RT-Thread完整版本中不常用,主要用于RT-Thread Nano,以缩减对内存的占用。由于没有动态拼接支持,在静态名字下,空闲线程的名字在多核时将命名成相同的名字。
Diffstat (limited to 'src/object.c')
| -rw-r--r-- | src/object.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/object.c b/src/object.c index 354703b713..b7ccf23725 100644 --- a/src/object.c +++ b/src/object.c @@ -387,8 +387,11 @@ void rt_object_init(struct rt_object *object, /* initialize object's parameters */ /* set object type to static */ object->type = type | RT_Object_Class_Static; - /* copy name */ - rt_strncpy(object->name, name, RT_NAME_MAX); +#if RT_NAME_MAX > 0 + rt_strncpy(object->name, name, RT_NAME_MAX); /* copy name */ +#else + object->name = name; +#endif /* RT_NAME_MAX > 0 */ RT_OBJECT_HOOK_CALL(rt_object_attach_hook, (object)); @@ -483,8 +486,11 @@ rt_object_t rt_object_allocate(enum rt_object_class_type type, const char *name) /* set object flag */ object->flag = 0; - /* copy name */ - rt_strncpy(object->name, name, RT_NAME_MAX); +#if RT_NAME_MAX > 0 + rt_strncpy(object->name, name, RT_NAME_MAX); /* copy name */ +#else + object->name = name; +#endif /* RT_NAME_MAX > 0 */ RT_OBJECT_HOOK_CALL(rt_object_attach_hook, (object)); |
