mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-27 04:01:47 +01:00 
			
		
		
		
	* Add build time partitions compilation * Fix wrong definition of SS pin * Add support for core debug level selection * update idf libs
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /******************************************************************************
 | |
|  *
 | |
|  *  Copyright (C) 2014 Google, Inc.
 | |
|  *
 | |
|  *  Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  *  you may not use this file except in compliance with the License.
 | |
|  *  You may obtain a copy of the License at:
 | |
|  *
 | |
|  *  http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  *  Unless required by applicable law or agreed to in writing, software
 | |
|  *  distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  *  See the License for the specific language governing permissions and
 | |
|  *  limitations under the License.
 | |
|  *
 | |
|  ******************************************************************************/
 | |
| 
 | |
| #ifndef _ALLOCATOR_H_
 | |
| #define _ALLOCATOR_H_
 | |
| 
 | |
| #include <stddef.h>
 | |
| //#include <stdlib.h>
 | |
| 
 | |
| typedef void *(*alloc_fn)(size_t size);
 | |
| typedef void (*free_fn)(void *ptr);
 | |
| 
 | |
| typedef struct {
 | |
|     alloc_fn alloc;
 | |
|     free_fn  free;
 | |
| } allocator_t;
 | |
| 
 | |
| // allocator_t abstractions for the osi_*alloc and osi_free functions
 | |
| extern const allocator_t allocator_malloc;
 | |
| extern const allocator_t allocator_calloc;
 | |
| 
 | |
| char *osi_strdup(const char *str);
 | |
| 
 | |
| void *osi_malloc_func(size_t size);
 | |
| void *osi_calloc_func(size_t size);
 | |
| void osi_free_func(void *ptr);
 | |
| 
 | |
| #ifdef CONFIG_BLUEDROID_MEM_DEBUG
 | |
| 
 | |
| void osi_mem_dbg_init(void);
 | |
| void osi_mem_dbg_record(void *p, int size, const char *func, int line);
 | |
| void osi_mem_dbg_clean(void *p, const char *func, int line);
 | |
| void osi_mem_dbg_show(void);
 | |
| 
 | |
| #define osi_malloc(size)                                \
 | |
| ({                                                      \
 | |
|     void *p;                                            \
 | |
|                                                         \
 | |
|     p = calloc(1, (size));                              \
 | |
|     osi_mem_dbg_record(p, size, __func__, __LINE__);    \
 | |
|     (void *)p;                                          \
 | |
| })
 | |
| 
 | |
| #define osi_calloc(size)                                \
 | |
| ({                                                      \
 | |
|     void *p;                                            \
 | |
|                                                         \
 | |
|     p = calloc(1, (size));                              \
 | |
|     osi_mem_dbg_record(p, size, __func__, __LINE__);    \
 | |
|     (void *)p;                                          \
 | |
| })
 | |
| 
 | |
| #define osi_free(ptr)                                   \
 | |
| ({                                                      \
 | |
|     osi_mem_dbg_clean(ptr, __func__, __LINE__);         \
 | |
|     free((ptr));                                        \
 | |
| })
 | |
| 
 | |
| #else
 | |
| 
 | |
| #define osi_malloc(size)                  calloc(1, (size))
 | |
| #define osi_calloc(size)                  calloc(1, (size))
 | |
| #define osi_free(p)                       free((p))
 | |
| 
 | |
| #endif /* CONFIG_BLUEDROID_MEM_DEBUG */
 | |
| 
 | |
| #endif /* _ALLOCATOR_H_ */
 |