/ components / micropython / port / src / omv / umm_malloc.h
umm_malloc.h
 1  /* This file is part of the OpenMV project.
 2   * Copyright (c) 2013-2017 Ibrahim Abdelkader <iabdalkader@openmv.io> & Kwabena W. Agyeman <kwagyeman@openmv.io>
 3   * This work is licensed under the MIT license, see the file LICENSE for details.
 4   */
 5  
 6  #ifndef __UMM_MALLOC_H__
 7  #define __UMM_MALLOC_H__
 8  #include <stdlib.h>
 9  
10  void umm_alloc_fail();
11  
12  ////////////////////////////////////////////////////////////////////////////////////////////////////
13  //////// "umm_malloc.h"
14  ////////////////////////////////////////////////////////////////////////////////////////////////////
15  
16  //The MIT License (MIT)
17  
18  //Copyright (c) 2015 Ralph Hempel
19  
20  //Permission is hereby granted, free of charge, to any person obtaining a copy
21  //of this software and associated documentation files (the "Software"), to deal
22  //in the Software without restriction, including without limitation the rights
23  //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24  //copies of the Software, and to permit persons to whom the Software is
25  //furnished to do so, subject to the following conditions:
26  
27  //The above copyright notice and this permission notice shall be included in all
28  //copies or substantial portions of the Software.
29  
30  //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31  //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32  //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33  //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34  //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35  //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36  //SOFTWARE.
37  
38  /* ----------------------------------------------------------------------------
39   * umm_malloc.h - a memory allocator for embedded systems (microcontrollers)
40   *
41   * See copyright notice in LICENSE.TXT
42   * ----------------------------------------------------------------------------
43   */
44  
45  
46  /* ------------------------------------------------------------------------ */
47  
48  void  umm_init_x( size_t size ); // Min of 2.5KB - Max of 640 KB.
49  void *umm_malloc( size_t size );
50  void *umm_calloc( size_t num, size_t size );
51  void *umm_realloc( void *ptr, size_t size );
52  void  umm_free( void *ptr );
53  
54  
55  /* ------------------------------------------------------------------------ */
56  
57  ////////////////////////////////////////////////////////////////////////////////////////////////////
58  ////////////////////////////////////////////////////////////////////////////////////////////////////
59  ////////////////////////////////////////////////////////////////////////////////////////////////////
60  
61  #endif /* __UMM_MALLOC_H__ */