heap_caps: Add heap_caps_check_integrity() function
This commit is contained in:
parent
63e1e4e502
commit
1cb0f30933
|
@ -288,3 +288,18 @@ void heap_caps_print_heap_info( uint32_t caps )
|
||||||
printf(" free %d allocated %d min_free %d largest_free_block %d\n", info.total_free_bytes, info.total_allocated_bytes, info.minimum_free_bytes, info.largest_free_block);
|
printf(" free %d allocated %d min_free %d largest_free_block %d\n", info.total_free_bytes, info.total_allocated_bytes, info.minimum_free_bytes, info.largest_free_block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool heap_caps_check_integrity(uint32_t caps, bool print_errors)
|
||||||
|
{
|
||||||
|
bool all_heaps = caps & MALLOC_CAP_INVALID;
|
||||||
|
bool valid = true;
|
||||||
|
|
||||||
|
heap_t *heap;
|
||||||
|
SLIST_FOREACH(heap, ®istered_heaps, next) {
|
||||||
|
if (heap->heap != NULL
|
||||||
|
&& (all_heaps || (get_all_caps(heap) & caps) == caps)) {
|
||||||
|
valid = multi_heap_check(heap->heap, print_errors) && valid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
|
@ -154,3 +154,18 @@ void heap_caps_get_info( multi_heap_info_t *info, uint32_t caps );
|
||||||
*/
|
*/
|
||||||
void heap_caps_print_heap_info( uint32_t caps );
|
void heap_caps_print_heap_info( uint32_t caps );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check integrity of all heaps with the given capabilities.
|
||||||
|
*
|
||||||
|
* Calls multi_heap_check() on all heaps which share the given capabilities. Optionally
|
||||||
|
* print errors if the heaps are corrupt.
|
||||||
|
*
|
||||||
|
* Pass caps == MALLOC_CAP_INVALID to test all registered heaps.
|
||||||
|
*
|
||||||
|
* @param caps Bitwise OR of MALLOC_CAP_* flags indicating the type
|
||||||
|
* of memory
|
||||||
|
* @param print_errors Print specific errors if heap corruption is found.
|
||||||
|
*
|
||||||
|
* @return True if all heaps are valid, False if at least one heap is corrupt.
|
||||||
|
*/
|
||||||
|
bool heap_caps_check_integrity(uint32_t caps, bool print_errors);
|
||||||
|
|
Loading…
Reference in a new issue