inport from local

Dependents:   Hobbyking_Cheetah_0511

Committer:
NYX
Date:
Mon Mar 16 06:35:48 2020 +0000
Revision:
0:85b3fd62ea1a
reinport to mbed;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NYX 0:85b3fd62ea1a 1
NYX 0:85b3fd62ea1a 2 /** \addtogroup platform */
NYX 0:85b3fd62ea1a 3 /** @{*/
NYX 0:85b3fd62ea1a 4 /* mbed Microcontroller Library
NYX 0:85b3fd62ea1a 5 * Copyright (c) 2016-2016 ARM Limited
NYX 0:85b3fd62ea1a 6 *
NYX 0:85b3fd62ea1a 7 * Licensed under the Apache License, Version 2.0 (the "License");
NYX 0:85b3fd62ea1a 8 * you may not use this file except in compliance with the License.
NYX 0:85b3fd62ea1a 9 * You may obtain a copy of the License at
NYX 0:85b3fd62ea1a 10 *
NYX 0:85b3fd62ea1a 11 * http://www.apache.org/licenses/LICENSE-2.0
NYX 0:85b3fd62ea1a 12 *
NYX 0:85b3fd62ea1a 13 * Unless required by applicable law or agreed to in writing, software
NYX 0:85b3fd62ea1a 14 * distributed under the License is distributed on an "AS IS" BASIS,
NYX 0:85b3fd62ea1a 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
NYX 0:85b3fd62ea1a 16 * See the License for the specific language governing permissions and
NYX 0:85b3fd62ea1a 17 * limitations under the License.
NYX 0:85b3fd62ea1a 18 */
NYX 0:85b3fd62ea1a 19 #ifndef MBED_STATS_H
NYX 0:85b3fd62ea1a 20 #define MBED_STATS_H
NYX 0:85b3fd62ea1a 21 #include <stdint.h>
NYX 0:85b3fd62ea1a 22 #include <stddef.h>
NYX 0:85b3fd62ea1a 23
NYX 0:85b3fd62ea1a 24 #ifdef __cplusplus
NYX 0:85b3fd62ea1a 25 extern "C" {
NYX 0:85b3fd62ea1a 26 #endif
NYX 0:85b3fd62ea1a 27
NYX 0:85b3fd62ea1a 28 typedef struct {
NYX 0:85b3fd62ea1a 29 uint32_t current_size; /**< Bytes allocated currently. */
NYX 0:85b3fd62ea1a 30 uint32_t max_size; /**< Max bytes allocated at a given time. */
NYX 0:85b3fd62ea1a 31 uint32_t total_size; /**< Cumulative sum of bytes ever allocated. */
NYX 0:85b3fd62ea1a 32 uint32_t reserved_size; /**< Current number of bytes allocated for the heap. */
NYX 0:85b3fd62ea1a 33 uint32_t alloc_cnt; /**< Current number of allocations. */
NYX 0:85b3fd62ea1a 34 uint32_t alloc_fail_cnt; /**< Number of failed allocations. */
NYX 0:85b3fd62ea1a 35 } mbed_stats_heap_t;
NYX 0:85b3fd62ea1a 36
NYX 0:85b3fd62ea1a 37 /**
NYX 0:85b3fd62ea1a 38 * Fill the passed in heap stat structure with heap stats.
NYX 0:85b3fd62ea1a 39 *
NYX 0:85b3fd62ea1a 40 * @param stats A pointer to the mbed_stats_heap_t structure to fill
NYX 0:85b3fd62ea1a 41 */
NYX 0:85b3fd62ea1a 42 void mbed_stats_heap_get(mbed_stats_heap_t *stats);
NYX 0:85b3fd62ea1a 43
NYX 0:85b3fd62ea1a 44 typedef struct {
NYX 0:85b3fd62ea1a 45 uint32_t thread_id; /**< Identifier for thread that owns the stack or 0 if multiple threads. */
NYX 0:85b3fd62ea1a 46 uint32_t max_size; /**< Maximum number of bytes used on the stack. */
NYX 0:85b3fd62ea1a 47 uint32_t reserved_size; /**< Current number of bytes allocated for the stack. */
NYX 0:85b3fd62ea1a 48 uint32_t stack_cnt; /**< Number of stacks stats accumulated in the structure. */
NYX 0:85b3fd62ea1a 49 } mbed_stats_stack_t;
NYX 0:85b3fd62ea1a 50
NYX 0:85b3fd62ea1a 51 /**
NYX 0:85b3fd62ea1a 52 * Fill the passed in structure with stack stats accumulated for all threads. The thread_id will be 0
NYX 0:85b3fd62ea1a 53 * and stack_cnt will represent number of threads.
NYX 0:85b3fd62ea1a 54 *
NYX 0:85b3fd62ea1a 55 * @param stats A pointer to the mbed_stats_stack_t structure to fill
NYX 0:85b3fd62ea1a 56 */
NYX 0:85b3fd62ea1a 57 void mbed_stats_stack_get(mbed_stats_stack_t *stats);
NYX 0:85b3fd62ea1a 58
NYX 0:85b3fd62ea1a 59 /**
NYX 0:85b3fd62ea1a 60 * Fill the passed array of stat structures with the stack stats for each available thread.
NYX 0:85b3fd62ea1a 61 *
NYX 0:85b3fd62ea1a 62 * @param stats A pointer to an array of mbed_stats_stack_t structures to fill
NYX 0:85b3fd62ea1a 63 * @param count The number of mbed_stats_stack_t structures in the provided array
NYX 0:85b3fd62ea1a 64 * @return The number of mbed_stats_stack_t structures that have been filled,
NYX 0:85b3fd62ea1a 65 * this is equal to the number of stacks on the system.
NYX 0:85b3fd62ea1a 66 */
NYX 0:85b3fd62ea1a 67 size_t mbed_stats_stack_get_each(mbed_stats_stack_t *stats, size_t count);
NYX 0:85b3fd62ea1a 68
NYX 0:85b3fd62ea1a 69 #ifdef __cplusplus
NYX 0:85b3fd62ea1a 70 }
NYX 0:85b3fd62ea1a 71 #endif
NYX 0:85b3fd62ea1a 72
NYX 0:85b3fd62ea1a 73 #endif
NYX 0:85b3fd62ea1a 74
NYX 0:85b3fd62ea1a 75 /** @}*/