summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl/rtl-alloc-heap.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libdl/rtl-alloc-heap.c')
-rw-r--r--cpukit/libdl/rtl-alloc-heap.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/cpukit/libdl/rtl-alloc-heap.c b/cpukit/libdl/rtl-alloc-heap.c
index 4ffdaf23b1..f1bdcca507 100644
--- a/cpukit/libdl/rtl-alloc-heap.c
+++ b/cpukit/libdl/rtl-alloc-heap.c
@@ -17,17 +17,30 @@
#include "rtl-alloc-heap.h"
+#include <rtems/score/apimutex.h>
+
void
rtems_rtl_alloc_heap (rtems_rtl_alloc_cmd cmd,
rtems_rtl_alloc_tag tag,
void** address,
size_t size)
{
- if (cmd == RTEMS_RTL_ALLOC_NEW)
- *address = malloc (size);
- else if (cmd == RTEMS_RTL_ALLOC_DEL)
+ switch (cmd)
{
- free (*address);
- *address = NULL;
+ case RTEMS_RTL_ALLOC_NEW:
+ *address = malloc (size);
+ break;
+ case RTEMS_RTL_ALLOC_DEL:
+ free (*address);
+ *address = NULL;
+ break;
+ case RTEMS_RTL_ALLOC_LOCK:
+ _RTEMS_Lock_allocator();
+ break;
+ case RTEMS_RTL_ALLOC_UNLOCK:
+ _RTEMS_Unlock_allocator();
+ break;
+ default:
+ break;
}
}