* configure.ac, score/src/threadqenqueuepriority.c: Add
RTEMS_DO_NOT_UNROLL_THREADQ_ENQUEUE_PRIORITY to give user ability to
disable the loop in _Thread_queue_Enqueue_priority from being
unrolled. This reduces code size and makes coverage analysis easier.
* rtems/src/rtemsobjectapimaximumclass.c,
score/include/rtems/score/object.h,
score/src/objectapimaximumclass.c, score/src/objectgetinfo.c: Change
return type of API maximum class methods to unsigned.
* posix/src/mutexsetprioceiling.c: Restructure to eliminate code
paths which are unreachable. Also add more comments.
* score/src/coremutexsurrender.c: Mark some code as RTEMS_DEBUG only
since it cannot be hit unless coremutexseize.c is broken.
* cpu.c: Implemented _CPU_Context_Initialize as a C function instead
of a macro. It works with limited functionality. Implemented
_CPU_Thread_Idle_body to use sleep instruction.
* Makefile.am: Changed cpu_asm.c -> cpu_asm.S
* cpu_asm.S: renamed from cpu_asm.c and implemented functions is asm
* rtems/asm.h: Appended "macros.inc" to the end of "asm.h"
* rtems/score/cpu.h:
+ Included "avr/io.h".
+ Added use 16 bit object definition.
+ Modified Context_Control struct to relect the registers
that need to be saved.
+ Implemented _CPU_ISR_Disable, _CPU_ISR_Enable, and _CPU_ISR_Flash.
Added function definitions for _CPU_Context_Initialize and
_CPU_Push.
* itron/src/task.c, posix/src/pthread.c, rtems/src/tasks.c,
sapi/src/exinit.c, score/include/rtems/score/apiext.h,
score/src/apiext.c: No APIs currently implemented use the
predriver_hook so disable it until such time as it is used.
* score/include/rtems/score/coremsg.h, score/src/coremsgflushwait.c:
Mark _CORE_message_queue_Flush_waiting_threads with
FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API since there is no way to
reach it via an API.
* score/src/corespinlockwait.c: Mark timeout code which is not
currently exercised by any API with the
FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API conditional.
* score/include/rtems/score/thread.h, score/src/threadinitialize.c,
score/src/threadreset.c, score/src/threadresume.c,
score/src/threadsuspend.c: Nesting count on thread suspension is only
supported from ITRON API so disable if ITRON is disabled.
* score/include/rtems/score/thread.h, score/src/threadhandler.c: Merge
conditional code from main and init/fini C++ constructors so the body
of this method reads better. Mark thread prototypes which are not
currently exercised by any APIs with
FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API conditional.
PR 1415/cpukit
* rtems/src/semcreate.c, rtems/src/semtranslatereturncode.c,
score/include/rtems/score/coremutex.h,
score/inline/rtems/score/coremutex.inl, score/src/coremutex.c:
Address two paths where a task with a priority above the ceiling
could obtain a priority ceiling mutex.
* cpu.h: corrected the registers in Context_Control and
in CPU_Interrupt_frame to correspond to the saved frame in cpu_asm.S
Also switched on CPU_ISR_PASSES_FRAME_POINTER.
* cpu_asm.S: Moved the restore part of _CPU_Context_switch for
easier reading. Fixed _CPU_Context_restore, it now moves the
argument and branches to a label in _CPU_Context_switch. Removed
unnecessary saves of registers in context switch and irq handling.
Rewrote irq code to call the C helper. Added some documentation
* irq.c: New file derived from c4x and nios2.
PR 1385/cpukit
* cpu_asm.S: When the type rtems_boolean was switched to the C99 bool,
the size changed from 4 bytes to 1 byte. The interrupt dispatching
code accesses two boolean variables for scheduling purposes and the
assembly implementations of this code did not get updated.
* libcsupport/src/malloc_initialize.c, score/Makefile.am,
score/include/rtems/score/protectedheap.h,
score/inline/rtems/score/heap.inl: Get total heap size correct when
using unified C Program Heap and RTEMS Workspace.
* score/src/pheapgetsize.c: New file.