浏览代码

add heap_caps_get_size_free

zhanghu 6 年之前
父节点
当前提交
341ef5e8b2
共有 2 个文件被更改,包括 20 次插入0 次删除
  1. 7 0
      components/heap/heap_caps.c
  2. 13 0
      components/heap/include/esp_heap_caps.h

+ 7 - 0
components/heap/heap_caps.c

@@ -450,3 +450,10 @@ void heap_caps_dump_all(void)
 {
 {
     heap_caps_dump(MALLOC_CAP_INVALID);
     heap_caps_dump(MALLOC_CAP_INVALID);
 }
 }
+
+size_t heap_caps_get_allocated_size( void *ptr )
+{
+    heap_t *heap = find_containing_heap(ptr);
+    size_t size = multi_heap_get_allocated_size(heap->heap, ptr);
+    return size;
+}

+ 13 - 0
components/heap/include/esp_heap_caps.h

@@ -310,6 +310,19 @@ void heap_caps_dump(uint32_t caps);
  */
  */
 void heap_caps_dump_all(void);
 void heap_caps_dump_all(void);
 
 
+/**
+ * @brief Return the size that a particular pointer was allocated with.
+ *
+ * @param ptr Pointer to currently allocated heap memory. Must be a pointer value previously 
+ * returned by heap_caps_malloc,malloc,calloc, etc. and not yet freed.
+ *
+ * @note The app will crash with an assertion failure if the pointer is not valid.
+ * 
+ * @return Size of the memory allocated at this block.
+ * 
+ */
+size_t heap_caps_get_allocated_size( void *ptr );
+
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif