root/Examples_CP-JR_ARM7_LPC2368/FreeRTOS_Book/Source-Code-For-Examples/FreeRTOS_Source/heap_3.c

Revision 36, 3.2 kB (checked in by phil, 15 years ago)

added purchased FreeRTOS book

Line 
1 /*
2         FreeRTOS.org V5.0.4 - Copyright (C) 2003-2008 Richard Barry.
3
4         This file is part of the FreeRTOS.org distribution.
5
6         FreeRTOS.org is free software; you can redistribute it and/or modify
7         it under the terms of the GNU General Public License as published by
8         the Free Software Foundation; either version 2 of the License, or
9         (at your option) any later version.
10
11         FreeRTOS.org is distributed in the hope that it will be useful,
12         but WITHOUT ANY WARRANTY; without even the implied warranty of
13         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14         GNU General Public License for more details.
15
16         You should have received a copy of the GNU General Public License
17         along with FreeRTOS.org; if not, write to the Free Software
18         Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20         A special exception to the GPL can be applied should you wish to distribute
21         a combined work that includes FreeRTOS.org, without being obliged to provide
22         the source code for any proprietary components.  See the licensing section
23         of http://www.FreeRTOS.org for full details of how and when the exception
24         can be applied.
25
26     ***************************************************************************
27     ***************************************************************************
28     *                                                                         *
29     * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
30     * and even write all or part of your application on your behalf.          *
31     * See http://www.OpenRTOS.com for details of the services we provide to   *
32     * expedite your project.                                                  *
33     *                                                                         *
34     ***************************************************************************
35     ***************************************************************************
36
37         Please ensure to read the configuration and relevant port sections of the
38         online documentation.
39
40         http://www.FreeRTOS.org - Documentation, latest information, license and
41         contact details.
42
43         http://www.SafeRTOS.com - A version that is certified for use in safety
44         critical systems.
45
46         http://www.OpenRTOS.com - Commercial support, development, porting,
47         licensing and training services.
48 */
49
50
51 /*
52  * Implementation of pvPortMalloc() and vPortFree() that relies on the
53  * compilers own malloc() and free() implementations.
54  *
55  * This file can only be used if the linker is configured to to generate
56  * a heap memory area.
57  *
58  * See heap_2.c and heap_1.c for alternative implementations, and the memory
59  * management pages of http://www.FreeRTOS.org for more information.
60  */
61
62 #include <stdlib.h>
63
64 #include "FreeRTOS.h"
65 #include "task.h"
66
67 /*-----------------------------------------------------------*/
68
69 void *pvPortMalloc( size_t xWantedSize )
70 {
71 void *pvReturn;
72
73         vTaskSuspendAll();
74         {
75                 pvReturn = malloc( xWantedSize );
76         }
77         xTaskResumeAll();
78
79         return pvReturn;
80 }
81 /*-----------------------------------------------------------*/
82
83 void vPortFree( void *pv )
84 {
85         if( pv )
86         {
87                 vTaskSuspendAll();
88                 {
89                         free( pv );
90                 }
91                 xTaskResumeAll();
92         }
93 }
94
95
96
Note: See TracBrowser for help on using the browser.