summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/rtdef.h9
-rw-r--r--include/rtthread.h1
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);