| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/include/rtems/itron/task.h, itron/src/del_tsk.c,
itron/src/exd_tsk.c, itron/src/task.c,
posix/include/rtems/posix/threadsup.h, posix/src/cancel.c,
posix/src/cancelrun.c, posix/src/pthread.c, posix/src/pthreadexit.c,
posix/src/setcancelstate.c, posix/src/setcanceltype.c,
posix/src/testcancel.c, rtems/src/taskdelete.c,
score/inline/rtems/score/object.inl, score/src/objectclose.c,
score/src/threadclose.c: Make all task delete/exit/cancel routines
follow the same critical section pattern. Also ensure that POSIX
cancelation routines are run at thread exit.
|
|
|
|
|
|
|
|
| |
* score/src/threadchangepriority.c: Just in case the transient
state was set when we entered, ensure that it is still set when
we exit.
* score/src/threadclose.c: When a thread is being deleted, it should
go into the dormant state -- not the transient state.
|
|
|
|
|
| |
* sapi/src/exinit.c, score/src/threadstartmultitasking.c: Improve
comments.
|
|
|
|
| |
* score/src/objectget.c: Improve comments and readability.
|
|
|
|
|
|
| |
* rtems/include/rtems/rtems/message.h, sapi/include/confdefs.h,
score/src/coresemseize.c, score/src/threadhandler.c: Comment
improvements from class.
|
|
|
|
|
|
|
|
| |
* posix/src/keycreate.c, posix/src/pthreadequal.c,
rtems/src/semtranslatereturncode.c,
score/cpu/powerpc/rtems/score/powerpc.h,
score/src/threadblockingoperationcancel.c: Fix compilation errors
when --enable-rtems-debug is used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/include/rtems/itron/task.h, itron/src/cre_tsk.c,
posix/src/pthreadcreate.c, rtems/src/taskcreate.c,
rtems/src/taskdelete.c, rtems/src/timerserver.c,
score/src/threadclose.c, score/src/threadcreateidle.c,
score/src/threadinitialize.c: Switch task create and delete
operations to using API Allocator Mutex. This moves almost all uses
of the RTEMS Workspace from dispatching disabled to mutex protected
which should improve deterministic behavior. The implementation was
carefully done to allow task create and delete extensions to invoke
more services. In particular, a task delete extension should be able
to do mutex and file operations.
|
|
|
|
|
| |
* rtems/src/regionmp.c, score/src/objectnametoidstring.c: Fix some
warnings.
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/src/mqueueunlink.c, score/Makefile.am,
score/include/rtems/score/object.h,
score/inline/rtems/score/object.inl: Enhance
_Objects_Namespace_remove() to handle freeing object names which are
strings. All changed _Objects_Close() to call
_Objects_Namespace_remove(). The resulting code was then moved from
inline routines to function calls.
* score/src/objectclose.c, score/src/objectnamespaceremove.c: New files.
|
|
|
|
|
|
| |
* rtems/src/rtemsobjectsetname.c, score/src/objectgetinfoid.c,
score/src/objectgetnameasstring.c, score/src/objectidtoname.c: Handle
Object Id of SELF.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/src/cond.c, posix/src/key.c, posix/src/mqueuenametoid.c,
posix/src/mutex.c, posix/src/pbarrier.c, posix/src/prwlock.c,
posix/src/pspin.c, posix/src/pthread.c, posix/src/ptimer.c,
posix/src/semaphorenametoid.c: Add option for all POSIX objects
whether named or unnamed to have a string name. If the API does
not directly support having a name, then the user must explicitly
assign it using rtems_object_set_name().
* rtems/src/rtemsobjectgetapiclassname.c: Improved testability.
* score/include/rtems/score/object.h,
score/src/objectgetnameasstring.c, score/src/objectnametoidstring.c,
score/src/objectsetname.c: Modifications required to pass testing of
recently modified object name operations. Also eliminated
multiprocessing related code that was not reachable.
|
|
|
|
|
|
|
|
| |
* score/include/rtems/score/object.h, score/src/objectgetinfo.c,
rtems/include/rtems/rtems/object.h,
rtems/src/rtemsobjectgetapiclassname.c,
rtems/src/rtemsobjectgetclassinfo.c: class is a C++ keyword and
cannot be used as a parameter.
|
|
|
|
|
|
|
| |
* score/Makefile.am, score/include/rtems/score/threadq.h,
score/inline/rtems/score/threadq.inl: _Thread_queue_Process_timeout
was really too complex to be inlined.
* score/src/threadqprocesstimeout.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/src/exd_tsk.c, itron/src/task.c, libmisc/capture/capture.c,
libmisc/monitor/mon-config.c, libmisc/monitor/mon-driver.c,
libmisc/monitor/mon-itask.c, libmisc/monitor/mon-monitor.c,
libmisc/monitor/mon-mpci.c, libmisc/monitor/mon-object.c,
libmisc/monitor/mon-symbols.c, posix/src/cancelrun.c,
posix/src/pthreadexit.c, rtems/Makefile.am, rtems/preinstall.am,
rtems/include/rtems.h, rtems/include/rtems/rtems/support.h,
rtems/inline/rtems/rtems/tasks.inl, rtems/src/eventmp.c,
rtems/src/msgmp.c, rtems/src/partmp.c, rtems/src/regionmp.c,
rtems/src/rtemsobjectgetname.c, rtems/src/semmp.c,
rtems/src/signalmp.c, rtems/src/taskdelete.c, rtems/src/taskmp.c,
rtems/src/timerserver.c, score/Makefile.am,
score/include/rtems/score/object.h,
score/inline/rtems/score/object.inl, score/src/Unlimited.txt,
score/src/objectgetnameasstring.c,
score/src/threadqextractwithproxy.c: Add new Object Services
collection. This changed the name of a few previously public but
undocumented services and added a some new services.
* rtems/include/rtems/rtems/object.h, rtems/src/rtemsbuildid.c,
rtems/src/rtemsbuildname.c, rtems/src/rtemsobjectapimaximumclass.c,
rtems/src/rtemsobjectapiminimumclass.c,
rtems/src/rtemsobjectgetapiclassname.c,
rtems/src/rtemsobjectgetapiname.c,
rtems/src/rtemsobjectgetclassicname.c,
rtems/src/rtemsobjectgetclassinfo.c,
rtems/src/rtemsobjectidapimaximum.c,
rtems/src/rtemsobjectidapiminimum.c, rtems/src/rtemsobjectidgetapi.c,
rtems/src/rtemsobjectidgetclass.c, rtems/src/rtemsobjectidgetindex.c,
rtems/src/rtemsobjectidgetnode.c, rtems/src/rtemsobjectsetname.c,
score/src/objectapimaximumclass.c, score/src/objectgetinfo.c,
score/src/objectgetinfoid.c, score/src/objectsetname.c: New files.
* rtems/src/rtemsidtoname.c: Removed.
|
|
|
|
|
| |
* score/src/corerwlockrelease.c, score/src/coresemseize.c: Changed
switch statements to if statements.
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h,
libcsupport/src/malloc_walk.c, libcsupport/src/posix_memalign.c,
libcsupport/src/realloc.c, score/src/heapwalk.c: Add rtems_memalign
as helper and as exposed nmemalign variant with few restrictions.
Also turn on compilation of _Heap_Walk but make forced calls to it
conditionally compiled. This should allow more flexibility to the
user as to run-time checking of the heap.
* libcsupport/src/rtems_memalign.c: New file.
|
|
|
|
|
|
|
| |
* sapi/include/confdefs.h, score/src/mpci.c, score/src/objectmp.c,
score/src/objectnametoid.c, score/src/objectnametoidstring.c:
Multiprocessing compiles again and survives initialization. The
recent object name and confdefs.h changes had broken it.
|
|
|
|
|
|
|
| |
* sapi/include/rtems/fatal.h, score/include/rtems/score/coremutex.h,
score/include/rtems/score/interr.h,
score/inline/rtems/score/thread.inl, score/src/coremutexseize.c:
Modifications to aid in full path testing.
|
|
|
|
|
|
|
|
| |
* score/include/rtems/score/object.h,
score/src/objectextendinformation.c,
score/src/objectinitializeinformation.c,
score/src/objectshrinkinformation.c: Eliminate name_table since it is
not used.
|
|
|
|
| |
* score/src/objectnametoidstring.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/include/rtems/itron/object.h, itron/src/cre_tsk.c,
libblock/src/show_bdbuf.c, libmisc/capture/capture-cli.c,
libmisc/capture/capture.c, libmisc/monitor/mon-manager.c,
libmisc/stackchk/check.c, posix/src/condinit.c,
posix/src/keycreate.c, posix/src/mqueuecreatesupp.c,
posix/src/mqueuedeletesupp.c, posix/src/mqueuenametoid.c,
posix/src/mqueueopen.c, posix/src/mqueueunlink.c,
posix/src/mutexinit.c, posix/src/pbarrierinit.c,
posix/src/prwlockinit.c, posix/src/pspininit.c,
posix/src/pthreadcreate.c, posix/src/pthreadexit.c,
posix/src/semaphorecreatesupp.c, posix/src/semaphorenametoid.c,
posix/src/timercreate.c, rtems/src/barrierident.c,
rtems/src/dpmemident.c, rtems/src/msgqident.c, rtems/src/partident.c,
rtems/src/ratemonident.c, rtems/src/regionident.c,
rtems/src/semident.c, rtems/src/taskident.c, rtems/src/timerident.c,
sapi/src/extensionident.c, score/Makefile.am,
score/include/rtems/score/object.h,
score/inline/rtems/score/object.inl, score/src/apimutexallocate.c,
score/src/objectextendinformation.c,
score/src/objectgetnameasstring.c, score/src/objectmp.c,
score/src/objectnametoid.c: Convert the Objects_Name type from a
simple type to a union of an unsigned 32 bit integer and a pointer.
This should help eliminate weird casts between u32 and pointers in
various places. The APIs now have to explicitly call _u32 or _string
versions of helper routines. This should also simplify things and
eliminate the need for ugly casts in some cases.
* score/src/objectclearname.c, score/src/objectcomparenameraw.c,
score/src/objectcomparenamestring.c, score/src/objectcopynameraw.c,
score/src/objectcopynamestring.c: Removed.
|
|
|
|
|
| |
* score/src/threadblockingoperationcancel.c: Clean up.
* score/src/threadqextract.c: Restructure to eliminate dead code.
|
|
|
|
|
|
|
| |
* rtems/src/eventsurrender.c, rtems/src/ratemonperiod.c,
score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
score/src/threadqdequeuepriority.c: Fix bugs encountered while
testing and clean up more code.
|
|
|
|
| |
* score/src/threadqfirst.c: Remove switch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/include/rtems/rtems/event.h,
rtems/inline/rtems/rtems/eventset.inl, rtems/src/event.c,
rtems/src/eventseize.c, rtems/src/eventsurrender.c,
rtems/src/eventtimeout.c, score/Makefile.am, score/preinstall.am,
score/include/rtems/score/interr.h,
score/include/rtems/score/thread.h,
score/include/rtems/score/threadq.h,
score/include/rtems/score/tqdata.h,
score/inline/rtems/score/threadq.inl,
score/inline/rtems/score/tqdata.inl, score/src/threadq.c,
score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
score/src/threadqextract.c, score/src/threadqextractfifo.c,
score/src/threadqextractpriority.c,
score/src/threadqextractwithproxy.c, score/src/threadqfirst.c,
score/src/threadqfirstfifo.c, score/src/threadqfirstpriority.c,
score/src/threadqflush.c, score/src/threadqrequeue.c,
score/src/threadqtimeout.c: Refactor thread queue enqueue and event
blocking synchronization critical sections. This resulted in three
copies of essentially the same hard to test critical section code
becoming the one shared routine _Thread_blocking_operation_Cancel. In
addition, the thread queue and event code now share a common
synchronization enumerated type. Along the way, switches were
reworked to eliminate dead code generated by gcc and comments and
copyrights were updated.
* score/include/rtems/score/threadsync.h,
score/src/threadblockingoperationcancel.c: New files.
|
|
|
|
|
| |
* libi2c/README_libi2c: Correct spelling error.
* score/src/threadclearstate.c: Improve comment.
|
|
|
|
|
|
|
|
|
| |
* score/include/rtems/score/wkspace.h,
score/inline/rtems/score/wkspace.inl, score/src/wkspace.c: Do not
inline _Workspace_Free or _Workspace_Allocate since they are not
always inlined and actually smaller overall as subroutines. They are
not particularly time critical so inlining is not absolutely
necessary.
|
|
|
|
|
|
| |
* score/include/rtems/score/coremutex.h,
score/src/coremutexseizeintr.c: Fix conditional code for inlining
_CORE_mutex_Seize_interrupt_trylock() and add comments.
|
|
|
|
|
| |
* score/src/objectgetnoprotection.c: Eliminate duplicate exit path code
when there is an error.
|
|
|
|
|
|
|
|
| |
* score/inline/rtems/score/isr.inl: Fix spacing.
* score/src/apimutexallocate.c: Fix spacing.
* score/src/coremsgseize.c: Check for message pending instead of
message pending count to avoid dead code from inlined chain routine.
It checks if the chain is empty so is redundant to count == 0.
|
|
|
|
|
| |
* score/src/threadget.c: Use _Objects_Is_api_valid rather than open
coding it.
|
|
|
|
|
|
|
|
| |
* score/src/threadhandler.c, sapi/src/exshutdown.c:
cannot call _fini via atexit() from rtems_shutdown_executive()
because at the point where rtems_shutdown_executive is called
the C-library is already dead.
Instead, register an atexit(_fini) after calling _init().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: fixed bug that always enabled strict order
mutexes.
* score/inline/rtems/score/coremutex.inl: Fixed coding standard.
* score/src/coremutex.c: Add the holder's thread to the lock_mutex
list if the mutex is initialised locked.
* libnetworking/rtems/rtems_glue.c: Changed semaphore error
message to show the error is an rtems-net error.
* libmisc/monitor/mon-network.c: Removed warnings.
* telnetd/icmds.c: Changed shell_* to rtems_shell_*.
* score/Makefile.am: Fixed typo that stopped 'make tags' working.
* libmisc/shell/err.c, libmisc/shell/err.h, libmisc/shell/errx.c,
libmisc/shell/extern-cp.h, libmisc/shell/fts.c,
libmisc/shell/fts.h, libmisc/shell/main_cp.c,
libmisc/shell/utils-cp.c, libmisc/shell/verr.c,
libmisc/shell/verrx.c, libmisc/shell/vwarn.c,
libmisc/shell/vwarnx.c, libmisc/shell/warn.c,
libmisc/shell/warnx.c: New. Ported from BSD.
* libmisc/shell/shellconfig.h: Add the cp command.
* libmisc/Makefile.am: Add the new files to the shell.
* libmisc/shell/shell.c, libmisc/shell/shell.h: Add scripting
support.
* libblock/src/flashdisk.c: Fixed disk drive count size setting
bug.
|
|
|
|
|
|
|
|
| |
* configure.ac, score/include/rtems/score/coremutex.h,
score/inline/rtems/score/coremutex.inl: Add the ability to disable
inlining coremutex seize. This reduces the code size and also
improves the process of coverage analysis.
* score/src/coremutexseizeintr.c: New file.
|
|
|
|
|
|
|
|
|
| |
* configure.ac, score/include/rtems/score/coremutex.h,
score/include/rtems/score/thread.h,
score/inline/rtems/score/coremutex.inl,
score/src/coremutexsurrender.c, score/src/threadinitialize.c: Add
support for proper stacking of priority inheritance on mutexes as
well as enforce proper order of release.
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h,
libcsupport/src/free.c, libcsupport/src/malloc.c,
libcsupport/src/malloc_p.h,
libcsupport/src/malloc_report_statistics_plugin.c,
libmisc/shell/shell.c, libmisc/shell/shell.h,
score/src/objectinitializeinformation.c: Add posix_memalign. Split
out management of deferred frees to subroutines.
* libcsupport/src/malloc_deferred.c, libcsupport/src/posix_memalign.c: New files.
|
|
|
|
|
| |
* score/src/threadqextractwithproxy.c: Conditionalize code that is only
required in multiprocessing configuration.
|
|
|
|
| |
* score/src/objectget.c: Revert.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am, posix/preinstall.am,
posix/include/rtems/posix/timer.h, score/src/objectget.c: Split POSIX
Timer implementation into multiple files. Add obvious error checks
for NULL parameters. Attempt to reduce include files.
* posix/src/timercreate.c, posix/src/timerdelete.c,
posix/src/timergetoverrun.c, posix/src/timergettime.c,
posix/src/timerinserthelper.c, posix/src/timersettime.c,
posix/src/timertsr.c: New files.
* posix/src/ptimer1.c: Removed.
|
|
|
|
|
| |
* score/src/pheapallocatealigned.c, score/src/pheapgetblocksize.c:
Reverse file contents.
|
|
|
|
|
|
|
|
|
| |
* sapi/include/confdefs.h, sapi/include/rtems/config.h,
sapi/include/rtems/init.h, sapi/src/exinit.c,
score/include/rtems/system.h, score/src/isr.c: Move
interrupt_stack_size field from CPU Table to Configuration Table.
Eliminate CPU Table from all ports. Delete references to CPU Table in
all forms.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/src/malloc.c, libmisc/monitor/mon-command.c,
posix/preinstall.am, posix/include/rtems/posix/cond.h,
posix/include/rtems/posix/mqueue.h,
posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/pthread.h,
posix/include/rtems/posix/semaphore.h, posix/src/conddestroy.c,
posix/src/mutexdestroy.c, posix/src/mutexinit.c,
posix/src/mutexsetprioceiling.c, posix/src/mutexunlock.c,
sapi/include/confdefs.h, sapi/include/rtems/config.h,
sapi/include/rtems/init.h, sapi/include/rtems/sptables.h,
sapi/src/exinit.c, score/include/rtems/system.h,
score/include/rtems/score/mpci.h, score/src/mpci.c,
score/src/thread.c, score/src/threadcreateidle.c,
score/src/threadstackallocate.c, score/src/threadstackfree.c,
score/src/wkspace.c: Moved most of the remaining CPU Table fields to
the Configuration Table. This included pretasking_hook,
predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
|
|
|
|
|
|
|
| |
* sapi/src/exinit.c, score/include/rtems/score/object.h,
score/include/rtems/score/thread.h, score/src/object.c,
score/src/thread.c: Conditionally compile out more code that is
specific to multiprocessor configurations.
|
|
|
|
|
|
|
|
| |
* configure.ac, score/inline/rtems/score/thread.inl,
score/src/threaddispatch.c: Add ability for user to disable inlining
of _Thread_Enable_dispatch. This can save code space but more
importantly it means the binary generated does not have code inlined
that is difficult to test and very seldom executed.
|
|
|
|
|
|
|
| |
* posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
rtems/include/rtems/rtems/barrier.h,
score/src/corerwlockobtainread.c, score/src/corerwlockobtainwrite.c,
score/src/corerwlockrelease.c: Fixed several implementation errors.
|
|
|
|
| |
* libcsupport/src/printk.c, score/src/objectget.c: Fix spacing.
|
|
|
|
|
| |
* score/src/apimutexlock.c, score/src/apimutexunlock.c: Functions were
in opposite files. Whoops!
|
|
|
|
|
|
|
|
|
|
| |
* sapi/src/exinit.c, score/Makefile.am,
score/include/rtems/score/apimutex.h: API Mutex calls should never
have been inlined. Inlining them lead to many inlined copies of core
mutex lock. This lead to over 2K savings in the SPARC/ERC32
minimum.exe.
* score/src/apimutex.c, score/src/apimutexallocate.c,
score/src/apimutexlock.c, score/src/apimutexunlock.c: New files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Miscellaneous changes made after a review against the POSIX spec.
* posix/src/pbarrierinit.c, posix/src/prwlockinit.c: If the caller
passes a NULL in the attributes parameter, default attributes are used.
* posix/src/prwlockdestroy.c: If there is at least one thread
waiting, do not allow deletion.
* posix/src/prwlockwrlock.c: Corrected parameter passed to the core
operation used to obtain a RWLock for writing.
* posix/src/pspinlocktranslatereturncode.c,
score/include/rtems/score/corespinlock.h,
score/src/corespinlockrelease.c: If the current thread is not the
holder of the lock, do not allow an unlock and return EPERM.
* score/src/corerwlockobtainwrite.c: Corrected to use the operation
for queueing with a timeout handler.
|
|
|
|
|
|
|
|
| |
* score/cpu/sparc/cpu.c, score/cpu/sparc/rtems/score/cpu.h,
score/include/rtems/score/context.h, score/src/threadhandler.c: Fix
stack so gdb backtrace does not print corrupted frame message after
_Thread_Handler. Daniel Hellstrom <daniel@gaisler.com> provided the
SPARC implementation and I made it more general.
|