* configure.ac, irq/irq.c, startup/bspclean.c, startup/bspstart.c: Add
ALLOW_IRQ_NESTING option. The MPC5200 has a settle time after
acknowledging the IRQs and currently the BSP does not account for
that. After acknowledging an interrupt, it currently gets a second
spurious IRQ a significant percentage of the time. Rename to
BENCHMARK_IRQ_PROCESSING and get it working again. Under one test
load, not nesting interrupts resulted in a 50% reduction in the
number of IRQs and an ~30% reduction in time spent in IRQs.
* 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.
* posix/Makefile.am, posix/include/rtems/posix/cond.h,
posix/include/rtems/posix/mutex.h, posix/inline/rtems/posix/cond.inl,
posix/inline/rtems/posix/mutex.inl: Do not include POSIX Mutex or
Condition Variable object get helpers because they are more
complicated than the norm. They can implicitly perform a create. They
cross the line as being too complex and large to inline since they
negatively impact size and binary test coverage.
* posix/src/condget.c, posix/src/mutexget.c: New files.
* libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h,
libcsupport/src/free.c, libcsupport/src/malloc.c,
libcsupport/src/malloc_deferred.c,
libcsupport/src/malloc_initialize.c, libcsupport/src/malloc_p.h,
libcsupport/src/malloc_sbrk_helpers.c,
libcsupport/src/posix_memalign.c: Place all deferred free code and
place it in subroutines. Add plugin for dirtying allocated memory to
assist in debugging. Clean up comments and spacing as needed.
* libcsupport/src/malloc_dirtier.c: New file.
* libcsupport/Makefile.am: Add malloc_sbrk_helpers.c.
* libcsupport/include/rtems/malloc.h,
libcsupport/src/malloc.c, libcsupport/src/malloc_initialize.c,
libcsupport/src/malloc_p.h,
libcsupport/src/malloc_statistics_helpers.c: Make sbrk()
support pluggable and optional. This eliminates the need for
heap extend and sbrk in the minimum footprint which is ~2.5K on
the SPARC.
* sapi/include/confdefs.h: Add the following configuration points:
+ CONFIGURE_MALLOC_STATISTICS
+ CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
* libcsupport/src/malloc_sbrk_helpers.c: New file.
* Makefile.am, configure.ac: Add sp40 to test some cases of dynamic
driver registration.
* sp40/.cvsignore, sp40/Makefile.am, sp40/init.c, sp40/sp40.scn,
sp40/system.h: New files.
* 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.