From e746a88b22c99f4ffe808fe2e9fb8816121cd608 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 3 May 2007 21:33:39 +0000 Subject: 2007-05-03 Joel Sherrill * ChangeLog, libcsupport/src/malloc.c, libcsupport/src/mallocfreespace.c, sapi/include/confdefs.h, score/Makefile.am, score/preinstall.am: malloc never blocks so the Region Manager is quite heavy for implementing this. This patch implements the C Program Heap directly in terms of the new Protected Heap handler. This handler is a direct use of a SuperCore Heap in conjunction with the Allocator Mutex used internally by RTEMS. This saves 3184 bytes on most SPARC test executables. * score/include/rtems/score/protectedheap.h, score/src/pheapallocate.c, score/src/pheapallocatealigned.c, score/src/pheapextend.c, score/src/pheapfree.c, score/src/pheapgetblocksize.c, score/src/pheapgetfreeinfo.c, score/src/pheapgetinfo.c, score/src/pheapinit.c, score/src/pheapresizeblock.c, score/src/pheapwalk.c: New files. --- cpukit/score/Makefile.am | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'cpukit/score/Makefile.am') diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 53aa6c4243..342244f65c 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -23,7 +23,7 @@ include_rtems_score_HEADERS = include/rtems/score/address.h \ include/rtems/score/corebarrier.h include/rtems/score/coremsg.h \ include/rtems/score/coremutex.h include/rtems/score/corerwlock.h \ include/rtems/score/coresem.h include/rtems/score/corespinlock.h \ - include/rtems/score/heap.h \ + include/rtems/score/heap.h include/rtems/score/protectedheap.h \ include/rtems/score/interr.h include/rtems/score/isr.h \ include/rtems/score/object.h include/rtems/score/priority.h \ include/rtems/score/stack.h include/rtems/score/states.h \ @@ -100,8 +100,8 @@ libscore_a_SOURCES += src/corespinlock.c src/corespinlockrelease.c \ src/corespinlockwait.c ## HEAP_C_FILES -libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c src/heapfree.c \ - src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \ +libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \ + src/heapfree.c src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c \ src/heapgetfreeinfo.c src/heapallocatealigned.c \ src/heapresizeblock.c @@ -116,6 +116,12 @@ libscore_a_SOURCES += src/object.c src/objectallocate.c \ src/objectshrinkinformation.c src/objectgetnoprotection.c \ src/objectidtoname.c +## PROTECTED_HEAP_C_FILES +libscore_a_SOURCES += src/pheapallocatealigned.c src/pheapallocate.c \ + src/pheapextend.c src/pheapfree.c src/pheapgetblocksize.c \ + src/pheapgetfreeinfo.c src/pheapgetinfo.c src/pheapinit.c \ + src/pheapresizeblock.c src/pheapwalk.c + ## THREAD_C_FILES libscore_a_SOURCES += src/thread.c src/threadchangepriority.c \ src/threadclearstate.c src/threadclose.c src/threadcreateidle.c \ -- cgit v1.2.3