* cpu.c, cpu_asm.S, score/cpu.h : add support for ARM<->THUMB veneer
thumb new dir to controll CPSR/SPRS in thumb mode
2007-05-09 Ray Xu <rayx.cn@gmail.com>
* cpu.c: move do_data_abort() to libbsp/arm/shared/abort/
implement a compact do_data_abort() in simple_abort.c
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.
* libmisc/cpuuse/cpuusagereport.c, rtems/src/ratemonreportstatistics.c:
Cleaned up reports and fixed a bug related the printf format which
resulted in lack of leading zeroes and misleading magnitude.
* score/src/timespecdivide.c: Fixed bugs related to zero divide case.
* score/Makefile.am, score/include/rtems/score/thread.h,
score/inline/rtems/score/thread.inl: No longer inline _Thread_Get. It
resulted in unnessary code explosion, many uncovered paths when
looking at binary executable coverage, and only optimized getting
self. Id translations were still getting pushed to a subroutine call
to _Objects_Get. Later the non-inlined version can be further
optimized to get Ids in range for the current API, then self, then
look at other APIs.
* score/src/threadget.c: New file.
* libcsupport/src/assoc.c: Removed. Accidentally included routine
also in another file. Mistake after splitting.
* libcsupport/Makefile.am: Reflect file removal.
* libmisc/stackchk/check.c: Eliminate output with little information.
Always print a blown message using the same routine. Now works with
GNAT RTS -fstack-checking if you have patch for the RTEMS specific
support in your GCC version.
PR 1262/filesystem
* libcsupport/Makefile.am, libnetworking/libc/herror.c,
libnetworking/libc/res_send.c, libnetworking/sys/uio.h,
telnetd/Makefile.am, telnetd/README, telnetd/preinstall.am,
telnetd/pty.c, telnetd/telnetd.c: Add support for readv() and
writev() including documentation and test case.
* libcsupport/src/readv.c, libcsupport/src/writev.c: New files.
* libnetworking/Makefile.am: Add dummy socketpair() implementation to
document what is required to provide a fully functional
implementation.
* libnetworking/rtems/rtems_socketpair.c: New file.
PR 1258/rtems
* cpukit/score/src/heapallocatealigned.c (block_allocate): New routine.
* cpukit/score/src/heapallocatealigned.c (_Heap_Allocate_aligned):
Use block_allocate() instead of _Heap_Block_allocate(). Replace
_Heap_Head(the_heap)->next with equivalent _Heap_First(the_heap).
* cpukit/score/src/heap.c (_Heap_Allocate): fix comments according
to changed block split strategy in _Heap_Allocate_aligned().
* cpu_asm.S: Fix two problems:
- CC bit has been clobbered and was not correctly restored
- bfin hardware does not allow to read instructions from the L1
* libcsupport/src/malloc.c: If RTEMS_HEAP_DEBUG is defined, add heap
walk on init, malloc, and free. The ability to walk the heap appears
to disappeared during the rework of the C Program heap to skip the
Region.