[include][src] Add API to get object name and thread name (#7507)
Signed-off-by: Fan YANG <fan.yang@hpmicro.com> Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
This commit is contained in:
parent
065a3e1b3a
commit
48557de148
|
@ -60,6 +60,7 @@ void rt_object_delete(rt_object_t object);
|
||||||
rt_bool_t rt_object_is_systemobject(rt_object_t object);
|
rt_bool_t rt_object_is_systemobject(rt_object_t object);
|
||||||
rt_uint8_t rt_object_get_type(rt_object_t object);
|
rt_uint8_t rt_object_get_type(rt_object_t object);
|
||||||
rt_object_t rt_object_find(const char *name, rt_uint8_t type);
|
rt_object_t rt_object_find(const char *name, rt_uint8_t type);
|
||||||
|
rt_err_t rt_object_get_name(rt_object_t object, char *name, rt_uint8_t name_size);
|
||||||
|
|
||||||
#ifdef RT_USING_HEAP
|
#ifdef RT_USING_HEAP
|
||||||
/* custom object */
|
/* custom object */
|
||||||
|
@ -169,6 +170,8 @@ void rt_thread_wakeup_set(struct rt_thread *thread, rt_wakeup_func_t func, void*
|
||||||
#endif
|
#endif
|
||||||
void rt_thread_timeout(void *parameter);
|
void rt_thread_timeout(void *parameter);
|
||||||
|
|
||||||
|
rt_err_t rt_thread_get_name(rt_thread_t thread, char *name, rt_uint8_t name_size);
|
||||||
|
|
||||||
#ifdef RT_USING_SIGNALS
|
#ifdef RT_USING_SIGNALS
|
||||||
void rt_thread_alloc_sig(rt_thread_t tid);
|
void rt_thread_alloc_sig(rt_thread_t tid);
|
||||||
void rt_thread_free_sig(rt_thread_t tid);
|
void rt_thread_free_sig(rt_thread_t tid);
|
||||||
|
|
24
src/object.c
24
src/object.c
|
@ -635,6 +635,30 @@ rt_object_t rt_object_find(const char *name, rt_uint8_t type)
|
||||||
return RT_NULL;
|
return RT_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function will return the name of the specified object container
|
||||||
|
*
|
||||||
|
* @param object the specified object to be get name
|
||||||
|
* @param name buffer to store the object name string
|
||||||
|
* @param name_size maximum size of the buffer to store object name
|
||||||
|
*
|
||||||
|
* @return -RT_EINVAL if any parameter is invalid or RT_EOK if the operation is successfully executed
|
||||||
|
*
|
||||||
|
* @note this function shall not be invoked in interrupt status
|
||||||
|
*/
|
||||||
|
rt_err_t rt_object_get_name(rt_object_t object, char *name, rt_uint8_t name_size)
|
||||||
|
{
|
||||||
|
rt_err_t result = -RT_EINVAL;
|
||||||
|
if ((object != RT_NULL) && (name != RT_NULL) && (name_size != 0U))
|
||||||
|
{
|
||||||
|
const char *obj_name = object->name;
|
||||||
|
(void) rt_strncpy(name, obj_name, (rt_size_t)name_size);
|
||||||
|
result = RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef RT_USING_HEAP
|
#ifdef RT_USING_HEAP
|
||||||
/**
|
/**
|
||||||
* This function will create a custom object
|
* This function will create a custom object
|
||||||
|
|
18
src/thread.c
18
src/thread.c
|
@ -1142,4 +1142,22 @@ rt_thread_t rt_thread_find(char *name)
|
||||||
|
|
||||||
RTM_EXPORT(rt_thread_find);
|
RTM_EXPORT(rt_thread_find);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function will return the name of the specified thread
|
||||||
|
*
|
||||||
|
* @note Please don't invoke this function in interrupt status
|
||||||
|
*
|
||||||
|
* @param thread the thread to retrieve thread name
|
||||||
|
* @param name buffer to store the thread name string
|
||||||
|
* @param name_size maximum size of the buffer to store the thread name
|
||||||
|
*
|
||||||
|
* @return If the return value is RT_EOK, the function is successfully executed
|
||||||
|
* If the return value is -RT_EINVAL, it means this operation failed
|
||||||
|
*/
|
||||||
|
rt_err_t rt_thread_get_name(rt_thread_t thread, char *name, rt_uint8_t name_size)
|
||||||
|
{
|
||||||
|
return (thread == RT_NULL) ? -RT_EINVAL : rt_object_get_name(&thread->parent, name, name_size);
|
||||||
|
}
|
||||||
|
RTM_EXPORT(rt_thread_get_name);
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
Loading…
Reference in New Issue