2007-05-03 Joel Sherrill <joel@OARcorp.com>

* 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.
This commit is contained in:
Joel Sherrill
2007-05-03 21:33:39 +00:00
parent 40ff680914
commit e746a88b22
17 changed files with 597 additions and 93 deletions
+2 -5
View File
@@ -70,8 +70,6 @@ extern itron_api_configuration_table Configuration_ITRON_API;
#define CONFIGURE_NEWLIB_EXTENSION 0
#endif
#define CONFIGURE_MALLOC_REGION 1
/*
* File descriptors managed by libio
*/
@@ -1056,8 +1054,7 @@ itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
CONFIGURE_LIBIO_SEMAPHORES + CONFIGURE_TERMIOS_SEMAPHORES) + \
CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \
CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \
CONFIGURE_MEMORY_FOR_REGIONS( \
CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION ) + \
CONFIGURE_MEMORY_FOR_REGIONS( CONFIGURE_MAXIMUM_REGIONS ) + \
CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \
CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \
CONFIGURE_MEMORY_FOR_BARRIERS(CONFIGURE_MAXIMUM_BARRIERS) + \
@@ -1109,7 +1106,7 @@ rtems_api_configuration_table Configuration_RTEMS_API = {
CONFIGURE_TERMIOS_SEMAPHORES,
CONFIGURE_MAXIMUM_MESSAGE_QUEUES,
CONFIGURE_MAXIMUM_PARTITIONS,
CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION,
CONFIGURE_MAXIMUM_REGIONS,
CONFIGURE_MAXIMUM_PORTS,
CONFIGURE_MAXIMUM_PERIODS,
CONFIGURE_MAXIMUM_BARRIERS,