| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
PR 1259/rtems
* rtems/src/taskcreate.c: Initialize is_global in all cases since
memory is not guaranteed to be zero.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/Makefile.am, libcsupport/src/printk.c:
* libcsupport/src/printk_plugin.c: New file.
include/rtems/bspIo.h, libmisc/cpuuse/cpuusagereport.c,
libmisc/cpuuse/cpuuse.h, libmisc/stackchk/check.c,
libmisc/stackchk/stackchk.h: rtems/include/rtems/rtems/ratemon.h,
rtems/src/ratemonreportstatistics.c: Added capability to specify
your own "printf" routine to various reporting functions. This
added an XXX_with_plugin as the underlying implementation for
+ rtems_rate_monotonic_report_statistics
+ rtems_stack_checker_report_usage
+ rtems_cpu_usage_report
As demonstration, the http netdemo can now print out stack
and cpu usage reports.
|
|
|
|
|
| |
* rtems/src/ratemonperiod.c: Clean up.
* rtems/src/ratemonreportstatistics.c: Clarify period statistics output.
|
|
|
|
|
| |
* rtems/include/rtems/rtems/clock.h, score/src/threadhandler.c: Fix
spacing and spelling.
|
|
|
|
| |
the size of the BSS section when an optional manageer stub is used. Some tests showed about a 600 byte reduction in BSS size. Also eliminated the variables _RTEMS_tasks_User_initialization_tasks and _RTEMS_tasks_Number_of_initialization_tasks because they were only used in one place after initialized. It was a waste of space.
|
|
|
|
|
|
| |
* rtems/src/ratemonperiod.c: Fix math ordering bug which resulted in a
negative value in some circumstances. Also cleaned up to share uptime
declaration.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ChangeLog, configure.ac, libcsupport/src/__times.c,
libmisc/cpuuse/cpuuse.c, libmisc/stackchk/check.c,
rtems/include/rtems/rtems/ratemon.h, rtems/src/ratemongetstatus.c,
rtems/src/ratemonperiod.c, rtems/src/ratemonreportstatistics.c,
rtems/src/ratemonresetall.c, rtems/src/ratemontimeout.c,
score/Makefile.am, score/include/rtems/score/thread.h,
score/include/rtems/score/timespec.h, score/src/threaddispatch.c,
score/src/threadinitialize.c, score/src/threadtickletimeslice.c,
score/src/timespecdivide.c: Add nanoseconds granularity to the rate
monotonic period statistics and CPU usage statistics. This capability
is enabled by default although may be conditionally disabled by the
user. It could be too much overhead on small targets but it does not
appear to be bad in early testing. Its impact on code size has not
been evaluated either. It is possible that both forms of statistics
gathering could be disabled with further tweaking of the conditional
compilation.
* score/src/timespecdividebyinteger.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am, preinstall.am, libmisc/Makefile.am, rtems/Makefile.am,
rtems/include/rtems.h, rtems/include/rtems/rtems/ratemon.h,
rtems/inline/rtems/rtems/ratemon.inl, 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/ratemontimeout.c,
score/Makefile.am, score/include/rtems/score/object.h,
score/src/threadhandler.c, wrapup/Makefile.am: Integrate Rate
Monotonic Statistics and Period Usage into Rate Monotonic Manager.
Added the following directives: rtems_rate_monotonic_get_statistics,
rtems_rate_monotonic_reset_statistics,
rtems_rate_montonic_reset_all_statistics,
rtems_rate_montonic_report_statistics, and rtems_object_get_name.
Obsoleted the rtems/rtmonuse.h file as a public interface.
* rtems/src/ratemongetstatistics.c,
rtems/src/ratemonreportstatistics.c, rtems/src/ratemonresetall.c,
rtems/src/ratemonresetstatistics.c, rtems/src/rtemsobjectgetname.c,
score/src/objectgetnameasstring.c: New files.
* libmisc/rtmonuse/rtmonuse.c, libmisc/rtmonuse/rtmonuse.h: Removed.
|
|
|
|
|
|
|
| |
* rtems/src/region.c, sapi/src/exinit.c: Now that the Region is
an optional manager, we cannot depend on it do initialize the
internal Allocator Mutex. This was always a questionable place to
do it, so this is a cleanup.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/Makefile.am, itron/src/eventflags.c, itron/src/fmempool.c,
itron/src/itronintr.c, itron/src/itrontime.c, itron/src/network.c,
itron/src/port.c, itron/src/sysmgmt.c, itron/src/task.c,
itron/src/vmempool.c, posix/Makefile.am, posix/src/pthread.c,
rtems/src/taskinitusers.c, rtems/src/tasks.c,
sapi/include/confdefs.h, sapi/src/io.c: Various modification to
reduce executable size. Most were refactoring of files. Split ITRON
API files. Implemented mechanism to avoid initialization task/thread
loop being linked in when that style of task initialization was not
being used.
* itron/src/acp_por.c, itron/src/act_cyc.c, itron/src/cal_por.c,
itron/src/chg_iXX.c, itron/src/clr_flg.c, itron/src/cre_flg.c,
itron/src/cre_mpf.c, itron/src/cre_mpl.c, itron/src/cre_por.c,
itron/src/def_alm.c, itron/src/def_cyc.c, itron/src/def_exc.c,
itron/src/def_int.c, itron/src/def_svc.c, itron/src/del_flg.c,
itron/src/del_mpf.c, itron/src/del_mpl.c, itron/src/del_por.c,
itron/src/dis_int.c, itron/src/dly_tsk.c, itron/src/ena_int.c,
itron/src/fwd_por.c, itron/src/get_blf.c, itron/src/get_blk.c,
itron/src/get_tim.c, itron/src/get_ver.c, itron/src/itroninittasks.c,
itron/src/loc_cpu.c, itron/src/nget_nod.c, itron/src/nget_ver.c,
itron/src/nrea_dat.c, itron/src/nwri_dat.c, itron/src/pacp_por.c,
itron/src/pcal_por.c, itron/src/pget_blf.c, itron/src/pget_blk.c,
itron/src/pol_flg.c, itron/src/ref_alm.c, itron/src/ref_cfg.c,
itron/src/ref_cyc.c, itron/src/ref_flg.c, itron/src/ref_iXX.c,
itron/src/ref_mpf.c, itron/src/ref_mpl.c, itron/src/ref_por.c,
itron/src/ref_sys.c, itron/src/rel_blf.c, itron/src/rel_blk.c,
itron/src/ret_int.c, itron/src/ret_tmr.c, itron/src/ret_wup.c,
itron/src/rpl_rdv.c, itron/src/set_flg.c, itron/src/set_tim.c,
itron/src/tacp_por.c, itron/src/tcal_por.c, itron/src/tget_blf.c,
itron/src/tget_blk.c, itron/src/twai_flg.c, itron/src/unl_cpu.c,
itron/src/wai_flg.c, posix/src/pthreadinitthreads.c: New files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am, posix/include/rtems/posix/time.h,
posix/src/adjtime.c, posix/src/alarm.c, posix/src/clockgetres.c,
posix/src/condtimedwait.c, posix/src/mqueuetimedreceive.c,
posix/src/mqueuetimedsend.c, posix/src/mutextimedlock.c,
posix/src/nanosleep.c, posix/src/posixtimespecabsolutetimeout.c,
posix/src/pthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadsetschedparam.c, posix/src/ptimer1.c,
posix/src/sched.c, posix/src/semtimedwait.c,
posix/src/sigtimedwait.c, posix/src/ualarm.c,
rtems/src/clocktodtoseconds.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c,
score/src/coretodget.c, score/src/coretodgetuptime.c,
score/src/coretodset.c, score/src/coretodtickle.c: Provide timespec
manipulation routines in the SuperCore. Use them everywhere possible.
This lead to significant cleanup in the API routines and eliminated
some of the same code from the POSIX API. At this point, the
SuperCore keeps time in POSIX timespec format properly from 1970. You
just cannot set it before 1988 in keeping with RTEMS traditional
behavior.
* score/include/rtems/score/timespec.h, score/src/timespecaddto.c,
score/src/timespecfromticks.c, score/src/timespecisvalid.c,
score/src/timespeclessthan.c, score/src/timespecsubtract.c,
score/src/timespectoticks.c: New files.
* posix/src/posixintervaltotimespec.c,
posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c: Removed.
|
|
|
|
|
|
|
|
|
| |
* posix/include/rtems/posix/timer.h, posix/src/alarm.c,
posix/src/posixtimespectointerval.c, posix/src/ptimer1.c,
posix/src/sysconf.c, posix/src/ualarm.c, rtems/src/clockget.c,
rtems/src/clocktodvalidate.c, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c: Eliminate
TOD_Ticks_per_second variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/src/itrontime.c, libcsupport/src/__gettod.c,
posix/include/rtems/posix/time.h, posix/include/rtems/posix/timer.h,
posix/src/clockgettime.c, posix/src/clocksettime.c,
posix/src/nanosleep.c, posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c, posix/src/ptimer1.c,
posix/src/sleep.c, rtems/Makefile.am,
rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/timer.h,
rtems/include/rtems/rtems/types.h, rtems/src/clockget.c,
rtems/src/clockset.c, rtems/src/clocktodtoseconds.c,
rtems/src/clocktodvalidate.c, rtems/src/taskwakewhen.c,
score/Makefile.am, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c,
score/src/coretodset.c: Convert from Classic API style TOD_Control as
fundamental time structure to POSIX struct timespec. Add
clock_get_uptime().
* rtems/src/clockgetuptime.c, score/src/coretodget.c,
score/src/coretodgetuptime.c: New files.
* score/src/coretodtickle.c, score/src/coretodtoseconds.c,
score/src/coretodvalidate.c: Removed.
|
|
|
|
|
| |
* rtems/include/rtems/rtems/tasks.h: Change rtems_task_argument to
uintptr_t.
|
|
|
|
|
|
|
|
|
|
| |
* rtems/Makefile.am, rtems/include/rtems/rtems/clock.h,
score/include/rtems/score/watchdog.h: Add support for a handler to
obtain the number of nanoseconds since the last clock tick. The
primary interface for this is rtems_clock_set_nanoseconds_extension.
Subsequent commits from Joel will redo the TOD support to use this
capability.
* rtems/src/clocksetnsecshandler.c: New file.
|
|
|
|
|
|
|
|
|
| |
* rtems/Makefile.am, rtems/src/msgqsend.c, rtems/src/msgqurgent.c:
Remove wrapper for message queue send and urgent and implement them
directly. There was an unnecessary function call layer in addition to
conditions in the shared routine. Directly coding both directives is
simpler and should result in smaller code.
* rtems/src/msgqsubmit.c: Removed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* posix/src/prwlockunlock.c, rtems/Makefile.am,
rtems/src/barrierrelease.c, rtems/src/barrierwait.c,
score/src/corerwlockobtainread.c, score/src/corerwlockrelease.c:
Complete implementation of barrier as the rest of the test code is
now implemented. Also add blocking code to rwlock.
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 841/rtems
* itron/inline/rtems/itron/semaphore.inl, itron/src/twai_sem.c,
posix/include/rtems/posix/semaphore.h,
posix/inline/rtems/posix/semaphore.inl,
posix/src/semaphorewaitsupp.c, posix/src/semtimedwait.c,
posix/src/semwait.c, rtems/src/semobtain.c,
rtems/src/semtranslatereturncode.c,
score/include/rtems/score/coresem.h, score/src/coresemseize.c: Make
sem_timedwait more conformant to Open Group specification.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac, itron/Makefile.am, itron/preinstall.am,
posix/Makefile.am, posix/preinstall.am, rtems/Makefile.am,
rtems/preinstall.am, sapi/Makefile.am, sapi/preinstall.am,
score/Makefile.am, score/preinstall.am, score/include/rtems/system.h,
score/include/rtems/score/chain.h,
score/include/rtems/score/thread.h, score/src/chain.c,
score/src/coremutexseize.c, score/src/threadget.c: Remove all macro
implementations and use only the static inline. Static inline
functions are now well supported so there is no reason for duplicate
maintenance.
* itron/macros/rtems/itron/eventflags.inl,
itron/macros/rtems/itron/fmempool.inl,
itron/macros/rtems/itron/intr.inl, itron/macros/rtems/itron/mbox.inl,
itron/macros/rtems/itron/msgbuffer.inl,
itron/macros/rtems/itron/network.inl,
itron/macros/rtems/itron/port.inl,
itron/macros/rtems/itron/semaphore.inl,
itron/macros/rtems/itron/sysmgmt.inl,
itron/macros/rtems/itron/task.inl, itron/macros/rtems/itron/time.inl,
itron/macros/rtems/itron/vmempool.inl,
posix/macros/rtems/posix/cond.inl, posix/macros/rtems/posix/key.inl,
posix/macros/rtems/posix/mqueue.inl,
posix/macros/rtems/posix/mutex.inl,
posix/macros/rtems/posix/priority.inl,
posix/macros/rtems/posix/pthread.inl,
posix/macros/rtems/posix/semaphore.inl,
posix/macros/rtems/posix/timer.inl, rtems/macros/rtems/rtems/asr.inl,
rtems/macros/rtems/rtems/attr.inl,
rtems/macros/rtems/rtems/barrier.inl,
rtems/macros/rtems/rtems/dpmem.inl,
rtems/macros/rtems/rtems/event.inl,
rtems/macros/rtems/rtems/eventset.inl,
rtems/macros/rtems/rtems/message.inl,
rtems/macros/rtems/rtems/modes.inl,
rtems/macros/rtems/rtems/options.inl,
rtems/macros/rtems/rtems/part.inl,
rtems/macros/rtems/rtems/ratemon.inl,
rtems/macros/rtems/rtems/region.inl,
rtems/macros/rtems/rtems/sem.inl,
rtems/macros/rtems/rtems/status.inl,
rtems/macros/rtems/rtems/support.inl,
rtems/macros/rtems/rtems/tasks.inl,
rtems/macros/rtems/rtems/timer.inl, sapi/macros/rtems/extension.inl,
score/macros/README, score/macros/rtems/score/address.inl,
score/macros/rtems/score/chain.inl,
score/macros/rtems/score/corebarrier.inl,
score/macros/rtems/score/coremsg.inl,
score/macros/rtems/score/coremutex.inl,
score/macros/rtems/score/corerwlock.inl,
score/macros/rtems/score/coresem.inl,
score/macros/rtems/score/corespinlock.inl,
score/macros/rtems/score/heap.inl, score/macros/rtems/score/isr.inl,
score/macros/rtems/score/mppkt.inl,
score/macros/rtems/score/object.inl,
score/macros/rtems/score/objectmp.inl,
score/macros/rtems/score/priority.inl,
score/macros/rtems/score/stack.inl,
score/macros/rtems/score/states.inl,
score/macros/rtems/score/sysstate.inl,
score/macros/rtems/score/thread.inl,
score/macros/rtems/score/threadmp.inl,
score/macros/rtems/score/tod.inl,
score/macros/rtems/score/tqdata.inl,
score/macros/rtems/score/userext.inl,
score/macros/rtems/score/watchdog.inl,
score/macros/rtems/score/wkspace.inl: Removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/Makefile.am, rtems/preinstall.am, rtems/include/rtems.h,
rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/config.h,
rtems/inline/rtems/rtems/attr.inl, rtems/macros/rtems/rtems/attr.inl:
Add Classic API Barriers.
* rtems/include/rtems/rtems/barrier.h,
rtems/include/rtems/rtems/barriermp.h,
rtems/inline/rtems/rtems/barrier.inl,
rtems/macros/rtems/rtems/barrier.inl, rtems/src/barrier.c,
rtems/src/barriercreate.c, rtems/src/barrierdelete.c,
rtems/src/barrierident.c, rtems/src/barrierrelease.c,
rtems/src/barriertranslatereturncode.c, rtems/src/barrierwait.c:
New files.
|
|
|
|
|
|
|
| |
PR 1170/rtems
* rtems/src/timerserver.c: Timer Server created the TIME task with a
hard-coded hexadecimal number instead of using rtems_build_name. This
resulted in a byte-swapped name on some platforms.
|
|
|
|
|
|
| |
PR 1101/rtems
* libcsupport/src/base_fs.c, rtems/src/taskcreate.c, rtems/src/tasks.c,
score/src/coremutex.c: Remove dead code.
|
|
|
|
|
|
| |
* itron/src/trcv_mbf.c, posix/src/semopen.c,
rtems/src/taskvariableadd.c, score/macros/rtems/score/heap.inl: Fix
warnings.
|
|
|
|
|
|
| |
* rtems/src/tasks.c, rtems/src/taskvariableadd.c,
rtems/src/taskvariabledelete.c, rtems/src/taskvariableget.c: Remove
warnings.
|
|
|
|
|
| |
* rtems/Makefile.am: Rework.
* score/Makefile.am: Rework.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PR 829/rtems
* rtems/src/tasks.c, rtems/src/taskvariabledelete.c: If task variables
are deleted from a different context (i.e., executing context !=
owner of the task variable. The owner meaning the task that
registered the dtor in question) the argument passed to the task
variable dtor must be tvar and not *ptr which yields the executing
task's value of the task variable instead of the owner's.
|
|
|
|
|
|
| |
PR 807/rtems
* rtems/src/timerfireafter.c, rtems/src/timerserverfireafter.c: First
patch returned without exitting dispatching critical section.
|
|
|
|
|
|
|
|
| |
PR 807/rtems
* rtems/src/timerfireafter.c, rtems/src/timerserverfireafter.c,
score/src/watchdoginsert.c: Tighten critical section checks on an ISR
using the same timer being inserted by a lower priority ISR or
interupt task.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* rtems/src/regiongetfreeinfo.c: Return RTEMS_SUCCESSFUL instead of
RTEMS_INVALID_ADDRESS on success path.
|
| |
|
| |
|
| |
|