PDK API Guide for J721E
HeapP.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
47 #ifndef ti_osal_HeapP__include
48 #define ti_osal_HeapP__include
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <stdint.h>
55 #include <stdbool.h>
56 #include <stddef.h>
57 
58 
60 #define HeapP_BYTE_ALIGNMENT (256U)
61 
65 typedef enum HeapP_Status_e
66 {
68  HeapP_OK = 0,
70  HeapP_FAILURE = (-(int32_t)1)
71 } HeapP_Status;
72 
79 typedef void *HeapP_Handle;
80 
87 typedef struct HeapP_Params_s
88 {
89  void *buf;
90  uint32_t size;
91 } HeapP_Params;
92 
96 typedef struct HeapP_MemStats_s
97 {
98  uint32_t totalSize;
99  uint32_t totalFreeSize;
100  uint32_t largestFreeSize;
102 
108 extern void HeapP_Params_init(HeapP_Params *params);
109 
120 extern HeapP_Handle HeapP_create(const HeapP_Params *params);
121 
127 extern HeapP_Status HeapP_delete(HeapP_Handle handle);
128 
147 extern void *HeapP_alloc(HeapP_Handle handle, uint32_t allocSize);
148 
157 extern HeapP_Status HeapP_free(HeapP_Handle handle, void *ptr, uint32_t size);
158 
166 
169 #ifdef __cplusplus
170 }
171 #endif
172 
173 #endif /* HEAPP_H */
HeapP_Status HeapP_delete(HeapP_Handle handle)
Delete the user defined heap.
HeapP_Status HeapP_getHeapStats(HeapP_Handle handle, HeapP_MemStats *stats)
Get detailed heap statistics.
Definition: HeapP.h:68
void * HeapP_Handle
Opaque client reference to an instance of a HeapP.
Definition: HeapP.h:79
HeapP_Handle HeapP_create(const HeapP_Params *params)
Create a user defined heap.
uint32_t totalSize
Definition: HeapP.h:98
void HeapP_Params_init(HeapP_Params *params)
Initialize params structure to default values.
Structure used to pass information about the heap out of HeapP_getHeapStats().
Definition: HeapP.h:96
void * HeapP_alloc(HeapP_Handle handle, uint32_t allocSize)
Alloc memory from user defined heap.
void * buf
Definition: HeapP.h:89
uint32_t totalFreeSize
Definition: HeapP.h:99
uint32_t size
Definition: HeapP.h:90
uint16_t size
Definition: tisci_boardcfg.h:112
HeapP_Status HeapP_free(HeapP_Handle handle, void *ptr, uint32_t size)
Free memory from user defined heap.
uint32_t largestFreeSize
Definition: HeapP.h:100
Definition: HeapP.h:70
HeapP_Status
Status codes for HeapP APIs.
Definition: HeapP.h:65
Basic HeapP Parameters.
Definition: HeapP.h:87