summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems (unfollow)
Commit message (Collapse)AuthorFilesLines
2005-05-202005-05-14 Sergei Organov <osv@topconrd.ru>Joel Sherrill5-36/+219
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.
2005-05-032005-05-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
* rtems/src/regiongetfreeinfo.c: Return RTEMS_SUCCESSFUL instead of RTEMS_INVALID_ADDRESS on success path.
2005-02-21New header guards.Ralf Corsepius32-64/+64
2005-02-19Auto-generated update.Ralf Corsepius1-1/+1
2005-02-08Split preinstallation rules in to separate files (preinstall.am).Ralf Corsepius1-276/+4
2005-02-08New.Ralf Corsepius1-0/+282
2005-02-04Use rtems_id for semaphores.Ralf Corsepius7-7/+7
2005-01-28New header guard.Ralf Corsepius32-64/+64
2005-01-282005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius1-1/+0
* 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).
2005-01-27Include config.h.Ralf Corsepius2-0/+8
2005-01-202005-01-20 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2-0/+3
PR 745/rtems * rtems/src/ratemoncreate.c, rtems/src/timercreate.c: Make sure internal timer structures are initialized so object control reuse is safe.
2005-01-18Include config.h.Ralf Corsepius108-0/+432
2005-01-072005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius1-1/+1
* 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.
2005-01-052005-01-05 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius1-2/+2
* rtems/src/eventsurrender.c: Remove bogus type casts. * sapi/Makefile.am: Eliminate *_FILES.
2005-01-012005-01-01 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius1-9/+3
* 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.
2004-11-292004-11-29 Joel Sherrill <joel@OARcorp.com>Joel Sherrill3-2/+96
* 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.
2004-11-02Add doxygen preamble.Ralf Corsepius33-66/+165
2004-11-022004-10-02 Ralf Corsepius <ralf_corsepiu@rtems.org>Ralf Corsepius31-64/+154
* rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h: Add doxygen preamble.
2004-11-012004-11-01 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2-5/+5
* rtems/include/rtems/rtems/tasks.h, rtems/src/taskstart.c: rtems_task_start(..., rtems_task_argument argument );
2004-10-152004-10-15 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2-2/+24
PR 692/rtems * rtems/src/regiongetsegment.c, rtems/src/regionreturnsegment.c: The Region Manager did not follow the proper protocol when blocking and unblocking tasks waiting on buffers. This was a bug introduced with the transition to an Allocation Mutex.
2004-07-242004-07-24 Mick Davis <mickd@microsol.iinet.net.au>Joel Sherrill1-0/+1
PR 641/rtems * rtems/src/eventsurrender.c: The problem here is that events may be lost when sent to a task which enters rtems_event_receive() with options set to wait with a timeout and to return on receipt of any event. The events are sent from an interrupt source such as a timer service routine. If more than one set of events is sent to the task before it returns, the first event set may be overwritten.
2004-07-242004-07-24 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-3/+6
PR rtems/652 * rtems/src/signalsend.c: Return RTEMS_INVALID_NUMBER when sending an empty signal set.
2004-07-142004-07-14 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-0/+3
PR 651/core * rtems/src/taskident.c: Add NULL check for id.
2004-06-292004-06-29 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
PR 631/rtems * rtems/src/msgqcreate.c: Return unsatisfied from message_queue_create when unable to allocate message buffer memory.
2004-05-062004-05-06 Joel Sherrill <joel@OARcorp.com>Joel Sherrill52-40/+156
PR 618/rtems * rtems/include/rtems/rtems/status.h, rtems/src/clockget.c, rtems/src/clockset.c, rtems/src/dpmemcreate.c, rtems/src/dpmemexternal2internal.c, rtems/src/dpmeminternal2external.c, rtems/src/eventmp.c, rtems/src/eventreceive.c, rtems/src/eventsend.c, rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c, rtems/src/msgqflush.c, rtems/src/msgqgetnumberpending.c, rtems/src/msgqreceive.c, rtems/src/msgqsubmit.c, rtems/src/partcreate.c, rtems/src/partdelete.c, rtems/src/partgetbuffer.c, rtems/src/ratemoncancel.c, rtems/src/ratemoncreate.c, rtems/src/ratemondelete.c, rtems/src/ratemongetstatus.c, rtems/src/ratemonident.c, rtems/src/ratemonperiod.c, rtems/src/regioncreate.c, rtems/src/regiondelete.c, rtems/src/regionextend.c, rtems/src/regiongetsegment.c, rtems/src/regiongetsegmentsize.c, rtems/src/regionreturnsegment.c, rtems/src/semcreate.c, rtems/src/semdelete.c, rtems/src/semflush.c, rtems/src/semident.c, rtems/src/taskcreate.c, rtems/src/taskgetnote.c, rtems/src/taskmode.c, rtems/src/taskrestart.c, rtems/src/taskresume.c, rtems/src/tasksetnote.c, rtems/src/tasksuspend.c, rtems/src/taskvariableadd.c, rtems/src/taskvariabledelete.c, rtems/src/taskvariableget.c, rtems/src/taskwakewhen.c, rtems/src/timercreate.c, rtems/src/timerdelete.c, rtems/src/timerfireafter.c, rtems/src/timerfirewhen.c, rtems/src/timerserverfireafter.c, rtems/src/timerserverfirewhen.c, score/include/rtems/score/object.h, score/src/coretodvalidate.c, score/src/objectnametoid.c: Add NULL checks.
2004-04-18Remove stray white spaces.Ralf Corsepius54-178/+178
2004-04-15Remove stray white spaces.Ralf Corsepius6-6/+0
2004-04-132004-04-13 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius1-1/+7
* rtems/include/rtems/rtems/types.h: Include <rtems/stdint.h> instead of <stdint.h>. Conditionally typedef rtems*signed64 types. * score/include/rtems/system.h: Include <rtems/stdint.h> instead of <stdint.h>.
2004-03-302004-03-30 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2-2/+4
* rtems/include/rtems/rtems/region.h: Include stddef.h for size_t. (rtems_region_get_segment_size): Use size_t instead of uint32_t for "size" (3rd arg). * rtems/src/regiongetsegmentsize.c: Reflect changes above. * libcsupport/src/malloc.c: Reflect changes above.
2004-03-292004-03-29 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius71-176/+176
* rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/region.inl, rtems/macros/rtems/rtems/part.inl, rtems/src/attr.c, rtems/src/dpmem.c, rtems/src/dpmemcreate.c, rtems/src/dpmemexternal2internal.c, rtems/src/dpmeminternal2external.c, rtems/src/eventseize.c, rtems/src/msg.c, rtems/src/msgmp.c, rtems/src/msgqallocate.c, rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c, rtems/src/msgqflush.c, rtems/src/msgqgetnumberpending.c, rtems/src/msgqident.c, rtems/src/msgqreceive.c, rtems/src/msgqsend.c, rtems/src/msgqsubmit.c, rtems/src/msgqtranslatereturncode.c, rtems/src/msgqurgent.c, rtems/src/part.c, rtems/src/partcreate.c, rtems/src/partident.c, rtems/src/partmp.c, rtems/src/ratemon.c, rtems/src/region.c, rtems/src/regioncreate.c, rtems/src/regionextend.c, rtems/src/regiongetsegment.c, rtems/src/regiongetsegmentsize.c, rtems/src/regionmp.c, rtems/src/regionreturnsegment.c, rtems/src/rtemstimer.c, rtems/src/sem.c, rtems/src/semcreate.c, rtems/src/semident.c, rtems/src/semmp.c, rtems/src/semobtain.c, rtems/src/semtranslatereturncode.c, rtems/src/taskcreate.c, rtems/src/taskgetnote.c, rtems/src/taskident.c, rtems/src/taskinitusers.c, rtems/src/taskmp.c, rtems/src/taskrestart.c, rtems/src/tasks.c, rtems/src/tasksetnote.c, rtems/src/taskstart.c, rtems/src/timerserver.c: Convert to using c99 fixed size types.
2004-03-292004-04-29 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2-4/+4
* score/src/Unlimited.txt, score/src/chain.c, score/src/coremsg.c, score/src/coremsgbroadcast.c, score/src/coremsgclose.c, score/src/coremsgflush.c, score/src/coremsgflushsupp.c, score/src/coremsgseize.c, score/src/coremsgsubmit.c, score/src/coremutex.c, score/src/coremutexflush.c, score/src/coresem.c, score/src/coresemflush.c, score/src/coretod.c, score/src/coretodtickle.c, score/src/coretodtoseconds.c, score/src/coretodvalidate.c, score/src/heap.c, score/src/heapallocate.c, score/src/heapextend.c, score/src/heapfree.c, score/src/heapsizeofuserarea.c, score/src/interr.c, score/src/iterateoverthreads.c, score/src/mpci.c, score/src/object.c, score/src/objectallocate.c, score/src/objectallocatebyindex.c, score/src/objectclearname.c, score/src/objectcomparenameraw.c, score/src/objectcomparenamestring.c, score/src/objectcopynameraw.c, score/src/objectcopynamestring.c, score/src/objectextendinformation.c, score/src/objectfree.c, score/src/objectget.c, score/src/objectgetbyindex.c, score/src/objectgetisr.c, score/src/objectgetnoprotection.c, score/src/objectidtoname.c, score/src/objectinitializeinformation.c, score/src/objectmp.c, score/src/objectnametoid.c, score/src/objectshrinkinformation.c, score/src/thread.c, score/src/threadcreateidle.c, score/src/threadget.c, score/src/threadidlebody.c, score/src/threadinitialize.c, score/src/threadmp.c, score/src/threadq.c, score/src/threadqdequeuepriority.c, score/src/threadqenqueuepriority.c, score/src/threadqfirstpriority.c, score/src/threadqflush.c, score/src/threadreset.c, score/src/threadrestart.c, score/src/threadsettransient.c, score/src/threadstackallocate.c, score/src/threadstart.c, score/src/userext.c, score/src/watchdoginsert.c, score/src/wkspace.c: Convert to using c99 fixed size types.
2004-03-08Unused.Ralf Corsepius10-20/+0
2004-02-262004-02-26 Thomas Rauscher <trauscher@loytec.com.Joel Sherrill1-9/+21
PR 584/RTEMS * rtems/src/eventtimeout.c: Fix critical section window.
2004-01-302004-01-30 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2-34/+4
* ChangeLog, rtems/Makefile.am, rtems/include/rtems/rtems/support.h: Reverse developmental patches accidentally committed.
2004-01-302004-01-30 Wilfried Busalski <w.busalski@lancier-monitoring.de>Joel Sherrill2-4/+34
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.
2004-01-232004-01-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius1-434/+0
* ChangeLog: Merge-in itron/ChangeLog, posix/ChangeLog, score/ChangeLog, sapi/ChangeLog, rtems/ChangeLog. * itron/ChangeLog, posix/ChangeLog, score/ChangeLog, sapi/ChangeLog, rtems/ChangeLog: Remove.
2004-01-23Cleanup ChangeLog.Ralf Corsepius1-200/+168
2004-01-192004-01-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-2/+8
* Makefile.am: Add PREINSTALL_DIRS.
2004-01-142004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-21/+25
* Makefile.am: Re-add dirstamps to PREINSTALL_FILES. Add PREINSTALL_FILES to CLEANFILES.
2004-01-112004-01-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-1/+5
* Makefile.am: Include compile.am, again.
2004-01-092004-01-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-1/+8
* Makefile.am: Add libs to CLEANFILES Set lib*_g_a_SOURCES = lib*_a_SOURCES.
2004-01-092004-01-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-7/+12
* Makefile.am: Build librtems$(LIB_VARIANT).a instead of $(ARCH)/librtems.a.
2004-01-072004-01-07 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-15/+12
* Makefile.am: Build library using EXTRA_LIBRARIES and automake rules.
2003-12-122003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-4/+6
* Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
2003-11-302003-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-2/+8
* Makefile.am: Add $(dirstamp) to compilation rules. Add AM_CPPFLAGS += -I$(top_builddir).
2003-11-302003-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-147/+153
* Makefile.am: Add $(dirstamp) to preinstallation rules. Remove MACROS.
2003-11-222003-11-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-82/+342
* Makefile.am: Reworked.
2003-10-232003-10-23 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Ralf Corsepius2-1/+6
* src/regiongetsegment.c: Remove unneccessary typecast in assignment to thread->Wait.return_argment.
2003-10-222003-10-22 Joel Sherrill <joel@OARcorp.com>Joel Sherrill3-4/+12
PR 512/core * src/tasks.c, src/taskvariabledelete.c: Run task variable destructor when task variable is deleted. Also some style cleanup.
2003-09-112003-09-11 Joel Sherrill <joel@OARcorp.com>Joel Sherrill3-2/+12
PR 488/rtems * src/taskcreate.c, src/tasks.c: Ensure notepads are zeroed.