| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* macros/rtems/score/coremsg.inl: Add <string.h> to remove warning.
* src/threadidlebody.c: Add return 0 to avoid warning.
|
|
|
|
|
|
| |
* src/coretodset.c: Correct calculation of ticks until next section
boundary. It was incorrectly based upon current time not the
time that is being set.
|
|
|
|
| |
* src/Makefile.am: Build into libscore.a.
|
|
|
|
|
|
| |
* include/rtems/score/apimutex.h (_API_Mutex_Lock): Per PR253
add the missing _ISR_Disable. This fix was already applied to
the old location (c/src/exec/score/...).
|
|
|
|
| |
* src/Makefile.am: Use .$(OBJEXT) instead of .o.
|
|
|
|
|
| |
* macros/rtems/score/object.inl: Corrected typos in
_Objects_Open, _Objects_Close, and _Objects_Namespace_remove.
|
|
|
|
|
|
| |
* macros/rtems/score/object.inl: Corrected implementation of
_Objects_Open, _Objects_Close, and _Objects_Namespace_remove
to be consistent with the inline implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Mega patch merge to change the format of the object IDs to
loosen the dependency between the SCORE and the various APIs.
There was considerable work to simplify the object name management
and it appears that the name_table field is no longer needed.
This patch also includes the addition of the internal mutex
which is currently only used to protect some types of allocation
and deallocation. This significantly can reduce context
switch latency under certain circumstances. In particular,
some heap/region operations were O(n) and had dispatching
disabled. This should help enormously. With this merge,
the patch is not as clean as it should be. In particular,
the documentation has not been modified to reflect the new object
ID layout, the IDs in the test screens are not updated, and
_Objects_Get_information needs to be a real routine not inlined.
As part of this patch a lot of MP code for thread/proxy blocking
was made conditional and cleaned up.
* include/Makefile.am, include/rtems/score/coremsg.h,
include/rtems/score/coremutex.h, include/rtems/score/coresem.h,
include/rtems/score/object.h, include/rtems/score/threadq.h,
inline/rtems/score/object.inl, inline/rtems/score/thread.inl,
macros/rtems/score/object.inl, src/Makefile.am, src/coremsg.c,
src/coremutex.c, src/coresem.c, src/mpci.c,
src/objectcomparenameraw.c, src/objectextendinformation.c,
src/objectinitializeinformation.c, src/objectnametoid.c,
src/thread.c, src/threadclose.c, src/threadget.c, src/threadq.c,
src/threadqextractwithproxy.c: Modified as part of above.
* include/rtems/score/apimutex.h, src/objectgetnoprotection.c: New
files.
|
|
|
|
|
| |
* macros/rtems/score/thread..inl: Implemented missing routines
for new libc reentrancy support.
|
|
|
|
|
|
|
|
|
| |
* include/rtems/score/thread.h, inline/rtems/score/thread.inl,
src/threaddispatch.c, src/threadinitialize.c:
Move the C library re-enterrant support directly into
the thread dispatch code. RTEMS needs libc and so requiring
libc to use a user extension with its overhead is not the best
solution. This patch lowers the overhead to 2 pointer moves.
|
|
|
|
|
| |
* include/Makefile.am: Work-around to autoconf-2.53 adding PACKAGE_*
to autoheaders - sed out *PACKAGE* from cpuopts-tmp.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/threaddispatch.c, src/threadhandler.c: Per PR211 fix
saving/restoring floating point context. The fpsave and fprestore
routines are only used in a executing context which _is_ fp and hence
has the FPU enabled. The current behavior required the FPU always to
be on which is very dangerous if lazy context switching is used.
[Joel Note: Some ports explicitly enabled the FPU in the FP save and
restore routines to avoid this.]
The patch also makes sure (on powerpc only) that the FPU is disabled
for integer tasks. Note that this is crucial if deferred fp context
switching is used. Otherwise, fp context corruption may go undetected!
Also note that even tasks which merely push/pop FP registers to/from
the stack without modifying them still MUST be FP tasks - otherwise
(if lazy FP context switching is used), FP register corruption (of
other, FP, tasks may occur)!
Furthermore, (on PPC) by default, lazy FP context save/restore
is _disabled_.
|
|
|
|
| |
* src/objectcomparenamestring.c: Fix typos.
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems/score/object.h, inline/rtems/score/object.inl,
src/objectcomparenamestring.c: Address PR81 that
reworked POSIX message queues to add a descriptor separate from
the underlying message queue. This allows non-blocking to follow
the "open" not the underlying queue. As part of debugging this
it became clear that _Objects_Compare_name_string was broken
and a simple version using strncmp() was substituted.
|
|
|
|
| |
* include/rtems/system.h: Remove targopts.h.
|
|
|
|
|
| |
* include/rtems/system.h: Add the sparc to the target supporting
multlibs.
|
|
|
|
|
|
|
| |
* src/threadinitialize.c: Per PR181, clear the array of user extension
pointers. This lets user extensions that have hooked the switch handler
know if a task has been processed by the user extension before. If a
user extension is created after a task is started it may not know it.
|
|
|
|
| |
* include/rtems/system.h: Add i386 to multilib-able targets.
|
|
|
|
|
|
|
| |
* macros/rtems/score/userext.inl: Now works after merging patch for
functionality requested in PR174.
* inline/rtems/score/userext.inl: Added a comment explaining the
order in which routines appear since it is not the obvious order.
|
|
|
|
|
|
| |
* Per PR141 and PR174, make task switch extension its own list and
fix all odd problems introduced by providing macro version.
* inline/rtems/score/userext.inl: Fix.
|
|
|
|
| |
* macros/rtems/score/object.inl: Corrected arguments.
|
|
|
|
|
|
| |
* macros/rtems/score/userext.inl: Updated to reflect modifications
to inline version from PR142.
* inline/rtems/score/userext.inl: Cleanup as side-effect of above.
|
|
|
|
|
|
|
|
| |
* Per PR142, make task switch extension its own list.
* include/rtems/score/userext.h: Reflect above by adding
User_extensions_Switch_control and adding it to User_extenions_Control.
* inline/rtems/score/userext.inl: Allocate all memory in one chunk
to minimize overhead. Address processing dedicated switch chain.
|
|
|
|
|
|
|
|
| |
* Per PR142, make task switch extension its own list.
* include/rtems/score/userext.h: Reflect above by adding
User_extensions_Switch_control and adding it to User_extenions_Control.
* inline/rtems/score/userext.inl: Allocate all memory in one chunk
to minimize overhead. Address processing dedicated switch chain.
|
|
|
|
|
|
|
|
|
| |
* cpu/Makefile.am: Remove AUTOMAKE_OPTIONS.
* src/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* inline/Makefile.am: Remove AUTOMAKE_OPTIONS.
* macros/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
|
|
|
| |
* include/rtems/score/watchdog.h: Added WATCHDOG_MAXIMUM_INTERVAL.
|
|
|
|
|
| |
* include/rtems/system.h: Fix typo in yesterday's change:
RTEMS_MULTILIBS.
|
|
|
|
|
|
|
| |
* include/rtems/system.h: Only include cpuopts.h when building a
multilib configuration. Some ports still need targopts.h but this
small modification lets those ports work non-multilib while
fixing being fixed for multilib.
|
|
|
|
|
|
| |
* include/rtems/seterr.h: Add do {..} while (0) in defines.
Rename set_errno_and_return_minus_one into
rtems_set_errno_and_return_minus_one.
|
|
|
|
|
|
| |
* inline/rtems/score/object.inl, macros/rtems/score/object.inl: Add
add casts to Objects_Id in _Objects_Build_ids to avoid implicit
typecasts from enum to int16 on bit16 targets (here: h8300).
|
|
|
|
| |
* src/Makefile.am: Add multilib support.
|
|
|
|
|
|
|
|
|
| |
This was tracked as PR91.
* include/rtems/score/isr.h, inline/rtems/score/isr.inl,
macros/rtems/score/isr.inl: Modified to allow any port to provide
its own implementation of the macro _ISR_Is_in_progress. If the
port overrides this macro, it must provide a non-inlined function
implementation.
|
|
|
|
|
|
|
|
| |
* src/threadhandler.c: When __USE__MAIN__ is defined by the toolset,
invoke the global constructors via __main. Reported as tested by
Alexandra Kossovsky <sasha@oktet.ru> and Victor V. Vengerov
<vvv@oktet.ru> in conjunction with a new set of tool RPMs
(gcc2.95.3newlib1.9.0-3). This was tracked as GNATS PR tools/84.
|
|
|
|
|
|
|
|
|
| |
Reported by Todor.Todorov@barco.com and tracked as PR36.
* include/rtems/score/object.h: Added prototype for
_Objects_Get_by_index().
* src/objectget.c, src/objectgetisr.c: Corrected procedure for
getting index from Id so it is correct and optimal for both single
and multiprocessor configurations.
|
|
|
|
|
| |
* src/threadhandler.c: Use __USE_INIT_FINI__ since USE_INIT_FINI
pollutes the application namespace.
|
|
|
|
| |
* .cvsignore: Add stamp-h.in.
|
|
|
|
| |
* include/Makefile.am: Fixed path to cpuopts-tmp.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems/Makefile.am: Remove.
* include/rtems/Makefile.am: Remove.
* include/Makefile.am: Handle subdirs, require automake-1.5.
* macros/rtems/Makefile.am: Remove.
* macros/rtems/score/Makefile.am: Remove.
* macros/Makefile.am: Handle subdirs, require automake-1.5.
* inline/rtems/Makefile.am: Remove.
* inline/rtems/score/Makefile.am: Remove.
* inline/Makefile.am: Handle subdirs, require automake-1.5.
* Makefile.am: require automake-1.5
|
|
|
|
|
|
|
| |
* include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
* include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
* inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
* macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
|
|
|
|
|
|
|
| |
* src/threadhandler.c: Now process C++ global constructors
(_init) as part of the first task execution not in BSP space.
This depends on the toolset defining USE_INIT_FINI so you
have to have the right toolset version.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c,
inline/rtems/score/coremutex.inl: The per thread field resource_count
should only be manipulated when a mutex is priority ceiling or
priority inherit. This was reported by Chris Johns <ccj@acm.org>
who also noticed that the use of switches for all disciplines
generated less efficient code than using explicit tests for the one
or two cases we were really interested in. Further review of his
modifications made it apparent that the "isa" methods to test mutex
discipline were not being used so this modification was swept into
the code as well.
|
|
|
|
|
|
|
| |
* src/coremutexseize.c: Add missing code for proper handling
of nesting acquisitions. This only impacts building with
inlines disabled on the source with the "fast mutex" optimizations.
This was post the 4.5 branch and did not impact released versions.
|
|
|
|
|
|
| |
* src/coremutexsurrender.c: Use holder thread not executing
thread because even though they may and often are the same
it is not guaranteed unless the proper attribute is set.
|
|
|
|
|
|
|
|
| |
* include/rtems/score/coremsg.h, src/coremsgsubmit.c: Add a new
return status to account for blocking sends. Otherwise, the
caller will think that the returned message status will have
the ultimate results of the operation. If the send times out,
the final status will be in the return_code of the thread.
|
|
|
|
|
|
|
|
| |
* include/rtems/score/coremsg.h, inline/rtems/score/coremsg.inl,
src/coremsgsubmit.c: Unblocking message queue operations should
NOT use _Thread_Executing for return status since it is permissible
to invoke message send operations from an ISR. This was reported
by Suvrat Gupta <suvrat@utstar.com>.
|
|
|
|
|
|
| |
* macros/rtems/score/coresem.inl, inline/rtems/score/coresem.inl:
Cut and paste problem incorrectly enabled interrupts twice with
the first time being too early.
|
|
|
|
|
| |
* include/rtems/score/.cvsignore: Add stamp-h, cpuopts.h,
cpuopts.h.in, cpuopts-tmp.h.
|
|
|
|
|
|
| |
* include/rtems/Makefile.am, include/rtems/score/Makefile.am,
inline/rtems/score/Makefile.am, macros/rtems/score/Makefile.am
Apply include_*HEADERS instead of H_FILES.
|
|
|
|
|
| |
* src/objectextendinformation.c: Added include of string.h to
eliminate warning.
|
|
|
|
|
| |
* src/threadinitialize.c: Fix my bad hack of Ralf's fp_area
warning removal patch. :(
|