diff options
Diffstat (limited to 'cpukit/libdl/rtl-alloc-heap.c')
-rw-r--r-- | cpukit/libdl/rtl-alloc-heap.c | 23 |
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; } } |