| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* rtems/Makefile.am: Rework.
* score/Makefile.am: Rework.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 746/rtems
Optimize realloc(). The problem is that realloc() can neither grow
nor shrink efficiently the current memory region without support
from underlying heap/region modules. The patch introduces one new
routine for each of heap and region modules, _Heap_Resize_block(),
and rtems_region_resize_segment(), respectively, and uses the
latter to optimize realloc().
The implementation of _Heap_Resize_block() lead to changing of the
heap allocation strategy: now the heap manager, when splits larger
free block into used and new free parts, makes the first part of
the block used, not the last one as it was before. Due to this new
strategy, _Heap_Resize_block() never needs to change the user
pointer.
Caveat: unlike previous heap implementation, first few bytes of
the contents of the memory allocated from the heap are now almost
never all zero. This can trigger bugs in client code that have not
been visible before this patch.
* libcsupport/src/malloc.c (realloc): try to resize segment in
place using new rtems_region_resize_segment() routine before
falling back to the malloc()/free() method.
* score/src/heap.c:
(_Heap_Initialize): change initial heap layout to reflect new
allocation strategy of using of the lower part of a previously
free block when splitting it for the purpose of allocation.
(_Heap_Block_allocate): when split, make the lower part used, and
leave the upper part free. Return type changed from Heap_Block* to
uint32_t.
* score/include/rtems/score/heap.h:
(Heap_Statistics): added 'resizes' field.
(Heap_Resize_status): new enum.
(_Heap_Resize_block): new routine.
(_Heap_Block_allocate): return type changed from Heap_Block* to
uint32_t.
* score/src/heapwalk.c: reflect new heap layout in checks.
* score/src/heapsizeofuserarea.c: more assertions added.
* score/src/heapresizeblock.c: new file.
(_Heap_Resize_block): new routine.
* score/src/heapfree.c: reverse the checks _Heap_Is_block_in() and
_Heap_Is_prev_used() on entry to be in this order.
* score/src/heapallocate.c, score/src/heapallocatealigned.c:
ignore return value of _Heap_Block_allocate().
* score/Makefile.am (HEAP_C_FILES): added src/heapresizeblock.c.
* rtems/include/rtems/rtems/region.h:
(rtems_region_resize_segment): new interface routine.
(_Region_Process_queue): new internal routine called from
rtems_region_resize_segment() and rtems_region_return_segment().
* rtems/src/regionreturnsegment.c: move queue management code into
the new internal routine _Region_Process_queue() and call it.
* rtems/src/regionresizesegment.c: new file.
(rtems_region_resize_segment): new interface routine.
* rtems/src/regionprocessqueue.c: new file.
(_Region_Process_queue): new internal routine containing queue
management code factored out from 'regionreturnsegment.c'.
* rtems/Makefile.am (REGION_C_FILES): Added
src/regionresizesegment.c, and src/regionprocessqueue.c.
* ada/rtems.adb, ada/rtems.ads: Added Region_Resize_Segment.
|
| |
|
|
|
|
|
|
|
| |
* itron/Makefile.am, libblock/Makefile.am, libcsupport/Makefile.am,
libfs/Makefile.am, libmisc/Makefile.am, posix/Makefile.am,
rtems/Makefile.am, sapi/Makefile.am:
Remove AM_CPPFLAGS += -I$(top_builddir).
|
|
|
|
|
|
|
|
| |
* httpd/Makefile.am, itron/Makefile.am, libblock/Makefile.am,
libcsupport/Makefile.am, libfs/Makefile.am, libmisc/Makefile.am,
libnetworking/Makefile.am, librpc/Makefile.am, posix/Makefile.am,
rtems/Makefile.am, sapi/Makefile.am, score/Makefile.am:
Eliminate CFLAGS_OPTIMIZE_V.
|
|
|
|
|
|
|
|
|
| |
* automake/compile.am, httpd/Makefile.am, itron/Makefile.am,
libblock/Makefile.am, libcsupport/Makefile.am, libfs/Makefile.am,
libmisc/Makefile.am, libnetworking/Makefile.am, librpc/Makefile.am,
posix/Makefile.am, rtems/Makefile.am, sapi/Makefile.am,
score/Makefile.am, wrapup/Makefile.am:
Remove build-variant support.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/src/mallocfreespace.c, rtems/Makefile.am,
rtems/include/rtems/rtems/region.h, score/Makefile.am,
score/include/rtems/score/heap.h, score/src/heapgetinfo.c: Add
capability to return information about just the free blocks in a
region or heap. Also changed the semantics of free space available
to be the largest block of memory that can be allocated.
* rtems/src/regiongetfreeinfo.c, score/src/heapgetfreeinfo.c: New files.
: score/include/rtems/score/object.h,
score/src/objectinitializeinformation.c: Remove warning.
|
|
|
|
|
| |
* ChangeLog, rtems/Makefile.am, rtems/include/rtems/rtems/support.h:
Reverse developmental patches accidentally committed.
|
|
|
|
|
|
|
| |
PR pppd/564
* rtems/Makefile.am, rtems/include/rtems/rtems/support.h: ppp0
Interface lose packets if the system use a slow baudrate for the
modem or the tcp/ip-packet is fragmented.
|
|
|
|
| |
* Makefile.am: Add PREINSTALL_DIRS.
|
|
|
|
|
| |
* Makefile.am: Re-add dirstamps to PREINSTALL_FILES.
Add PREINSTALL_FILES to CLEANFILES.
|
|
|
|
| |
* Makefile.am: Include compile.am, again.
|
|
|
|
|
| |
* Makefile.am: Add libs to CLEANFILES
Set lib*_g_a_SOURCES = lib*_a_SOURCES.
|
|
|
|
|
| |
* Makefile.am: Build librtems$(LIB_VARIANT).a instead of
$(ARCH)/librtems.a.
|
|
|
|
| |
* Makefile.am: Build library using EXTRA_LIBRARIES and automake rules.
|
|
|
|
| |
* Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
|
|
|
|
|
| |
* Makefile.am: Add $(dirstamp) to compilation rules.
Add AM_CPPFLAGS += -I$(top_builddir).
|
|
|
|
|
| |
* Makefile.am: Add $(dirstamp) to preinstallation rules.
Remove MACROS.
|
|
|
|
| |
* Makefile.am: Reworked.
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am, include/rtems.h, include/rtems/rtems/status.h,
src/dpmemident.c, src/msgqident.c, src/partident.c,
src/ratemonident.c, src/regionident.c, src/semident.c,
src/taskident.c, src/timerident.c: Added ID to name lookup service
and changed name of id/name translation status code. This propagated
to multiple functions. The user API service added was
rtems_object_id_to_name()
* src/rtemsidtoname.c: New file.
|
|
|
|
|
| |
* Makefile.am: Don't create $ARCH as side-effect of compilation.
Re-order all-local.
|
|
|
|
|
|
|
|
| |
* include/Makefile.am: Remove.
* inline/Makefile.am: Remove.
* macros/Makefile.am: Remove.
* src/Makefile.am: Remove.
* Makefile.am: Merge-in removed Makefile.ams.
|
|
|
|
| |
* Include $(top_srcdir)/automake/*.am.
|
|
|
|
|
|
|
|
| |
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* inline/Makefile.am: Remove AUTOMAKE_OPTIONS.
* macros/Makefile.am: Remove AUTOMAKE_OPTIONS.
* src/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Use AS_IF instead of if/then/else.
Add AC_DEFINE_UNQUOTED(RTEMS_UNIX) for RTEMS_CPU==unix.
Add AC_DEFINE_UNQUOTED(RTEMS_UNIXLIB) for RTEMS_CPU==unix.
Add include/Makefile to CONFIG_FILES.
Add AC_ENABLE_MULITLIB.
Remove wrapup/rtems, wrapup/itron, wrapup/posix.
Remove */optman/Makefile from CONFIG_FILES.
* Makefile.am: Add include to SUBDIRS.
* rtems/Makefile.am: Remove optman from SUBDIRS.
* sapi/Makefile.am: Remove optman from SUBDIRS.
* include/Makefile.am: New file.
* include/rtems/bspIo.h: Relocated from lib/include.
* include/rtems/libio_.h: Relocated from lib/include.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems/Makefile.am: Remove.
* include/rtems/rtems/Makefile.am: Remove.
* include/Makefile.am: Handle subdirs, require automake-1.5.
* inline/rtems/Makefile.am: Remove.
* inline/rtems/rtems/Makefile.am: Remove.
* inline/Makefile.am: Handle subdirs, require automake-1.5.
* macros/rtems/Makefile.am: Remove.
* macros/rtems/rtems/Makefile.am: Remove.
* macros: Handle subdirs, require automake-1.5.
* Makefile.am: require automake-1.5.
|
|
|
|
| |
where wrapup left pieces out of the librtemsall.a.
|
|
Ralf Corsepius <corsepiu@faw.uni-ulm.de> which converted many
Makefile.in's to Makefile.am's. This added a lot of files.
|