Browse Source

[kernel] add rt_object_get_type() function who return type of object without static flag

liang yongxiang 7 years ago
parent
commit
7b984c2f54
2 changed files with 17 additions and 0 deletions
  1. 1 0
      include/rtthread.h
  2. 16 0
      src/object.c

+ 1 - 0
include/rtthread.h

@@ -62,6 +62,7 @@ rt_object_t rt_object_allocate(enum rt_object_class_type type,
                                const char               *name);
 void rt_object_delete(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_object_t rt_object_find(const char *name, rt_uint8_t type);
 
 #ifdef RT_USING_HOOK

+ 16 - 0
src/object.c

@@ -418,6 +418,22 @@ rt_bool_t rt_object_is_systemobject(rt_object_t object)
     return RT_FALSE;
 }
 
+/**
+ * This function will return the type of object without
+ * RT_Object_Class_Static flag.
+ *
+ * @param object the specified object to be get type.
+ *
+ * @return the type of object.
+ */
+rt_uint8_t rt_object_get_type(rt_object_t object)
+{
+    /* object check */
+    RT_ASSERT(object != RT_NULL);
+
+    return object->type & ~RT_Object_Class_Static;
+}
+
 /**
  * This function will find specified name object from object
  * container.