| Commit message (Collapse) | Author | Files | Lines |
|
|
|
* include/rtems/score/apimutex.h (_API_Mutex_Lock): Added missing
_ISR_Disable.
|
|
* 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.
|
|
* Include $(top_srcdir)/automake/*.am.
|
|
* 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.
|
|
* 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.
|
|
* include/rtems/system.h: Add i386 to multilib-able targets.
|
|
* 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.
|
|
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.
|
|
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.
|
|
* 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 ='.
|
|
* 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>.
|
|
* 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.
|
|
* include/rtems/score/isr.h, src/isr.c: Allocate it from the
workspace rather than explicitly declaring it. This allows
the size to be a non-constant from the perspective of score/cpu.
|
|
* include/rtems/system.h: Use proper conditional (RTEMS_POSIX_API)
so prototypes for POSIX_MP_NOT_IMPLEMENTED(), POSIX_NOT_IMPLEMENTED(),
POSIX_BOTTOM_REACHED() are actually included.
|
|
* aclocal/canonicalize-tools.m4, aclocal/check-tool.m4,
aclocal/prog-cc.m4, aclocal/prog-cxx.m4: Replace AC_CHECK_TOOL
with an RTEMS specific but more restrictive autoconf macro.
|
|
* src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am:
Added _Heap_Get_information() and information control block.
* src/heapgetinfo.c: New file.
|
|
* rtems/system.h: Switched a29k and hppa1.1 to using cpuopts.h not
targopts.h to reduce dependency on BSP.
|
|
* Many files: Moved posix/include/rtems/posix/seterr.h to
score/include/rtems/seterr.h so it would be available within
all APIs.
|
|
* include/rtems/system.h: Include cpuopts.h for __i386__.
|
|
|
|
is available.
|
|
a BSP (c4xsim) supporting the simulator included with gdb. This port
was done by Joel Sherrill and Jennifer Averett of OAR Corporation.
Also included with this port is a space/time optimization to eliminate
FP context switch management on CPUs without hardware or software FP.
An issue with this port was that sizeof(unsigned32) = sizeof(unsigned8)
on this CPU. This required addressing alignment checks and assumptions
as well as fixing code that assumed sizeof(unsigned32) == 4.
|
|
that removes an unnecessary inclusion of @RTEMS_BSP@.cfg.
|
|
routines and structures that require CPU model specific information
are now in libcpu. This primarily required moving erc32 specific
information from score/cpu files to libcpu/sparc and the erc32 BSP.
|
|
using cpuopts.h and not targopts.h.
|
|
that decouples exec/ for the sh, m68k and i960 from targopts.h.
NOTE: The change to system.h is a hack to enable cpuopts.h
for some targets, but keep using targopts.h for others - I know it
does *not* work for sparc, mips, i386 and ppc. This will have
to be addressed as work continues on multilibing.
|
|
that addresses aspects of the targopts.h multilib related
issues.
Changes:
* Move targopts.h to libbsp/include, because the current targopts.h
actually is a per-BSP-header and therefore can not stay below exec/.
* Introduce an autoheader generated header file
(exec/score/include/rtems/score/cpuopts.h), which shall take per-cpu
configuration options only.
* Move all autoconf-detectable/configure specified per-cpu
option-defines from targopts.h to cpuopts.h.
* Add Makefiles to the libbsp/shared directory hierarchy.
Notes:
* The new per-bsp targopts.h in libbsp includes the per-cpu
cpuopts.h. This way, the new targopts.h is kept backward compatible
to the old targopts.h and existing BSPs which (carelessly) include
targopts.h (i386, ppc) should be kept working when using the
multilib-disabled configuration scheme.
* cpuopts.h is not yet complete, because the per-BSP make-targopts
rules from custom/<BSP>.cfg files can not be applied to files below
exec/ when building multilibs.
* All files below exec/ should not include targopts.h anymore, but
should include cpuopts.h instead. However, eliminating inclusion of
targopts.h currently triggers further structural / header file inclusion
related issues, because several ports apply BSP or CPU_MODEL specific
defines from targopts.h below exec/
|
|
static inline routine _CORE_mutex_Seize_interrupt_trylock since
static routines are not included when in an application.
|
|
that is a somewhat experimental, multilib-related patch:
Changes:
* Use RTEMS_ENV_RTEMSCPU instead of RTEMS_ENV_RTEMSBSP in
configure.ins below exec/.
At the moment, RTEMS_ENV_RTEMSCPU is more or less an optical change
to emphasize that these subdirectories shall not depend on RTEMS_BSP
than a real behavioral change.
* Add AC_DEFINE_* to several aclocal/*.m4 macros to prepare
autoheader/autoconf generated targopts.h and similiar configuration
headers.
* c/src/configure.in: remove exec from cfg_subdirs if multilibs are
enabled (c/src is build per bsp, exec shall be build per cpu in c/
or from the toplevel in future, when multilibs are enabled.)
Notes:
* This patch should not have any impact on the current building scheme.
* --enable-multilib still does not work.
* running bootstrap from the toplevel directory is required.
CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: c/src/tests/libtests/termios/init.c
CVS: ----------------------------------------------------------------------
|
|
|
|
if the mutex is successfully obtained.
|
|
|
|
|
|
|
|
<charles.gauthier@iit.nrc.ca>, and Darlene A. Stewart
<Darlene.Stewart@nrc.ca> to add support for a number of very
significant things:
+ BSPs for many variations on the Motorola MBX8xx board series
+ Cache Manager including initial support for m68040
and PowerPC
+ Rework of mpc8xx libcpu code so all mpc8xx CPUs now use
same code base.
+ Rework of eth_comm BSP to utiltize above.
John reports this works on the 821 and 860
|
|
|
|
adds .cvsignore.
|