diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/rtdef.h | 9 | ||||
| -rw-r--r-- | include/rtthread.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/rtdef.h b/include/rtdef.h index 06fcfcb8b8..f0918d5dd6 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -356,6 +356,15 @@ struct rt_object typedef struct rt_object *rt_object_t; /**< Type for kernel objects. */ /** + * iterator of rt_object_for_each() + * + * data is the data passing in to rt_object_for_each(). iterator can return + * RT_EOK to continue the iteration; or any positive value to break the loop + * successfully; or any negative errno to break the loop on failure. + */ +typedef rt_err_t (*rt_object_iter_t)(rt_object_t object, void *data); + +/** * The object type can be one of the follows with specific * macros enabled: * - Thread diff --git a/include/rtthread.h b/include/rtthread.h index c2174cce42..1cad47931a 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -75,6 +75,7 @@ rt_err_t rt_custom_object_destroy(rt_object_t obj); #endif /* RT_USING_HEAP */ rt_bool_t rt_object_is_systemobject(rt_object_t object); rt_uint8_t rt_object_get_type(rt_object_t object); +rt_err_t rt_object_for_each(rt_uint8_t type, rt_object_iter_t iter, void *data); 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); |
