Add and use _ISR_Disable_without_giant() and
_ISR_Enable_without_giant() if RTEMS_SMP is defined.
On single processor systems the ISR disable/enable was the big hammer
which ensured system-wide mutual exclusion. On SMP configurations this
no longer works since other processors do not care about disabled
interrupts on this processor and continue to execute freely.
On SMP in addition to ISR disable/enable an SMP lock must be used.
Currently we have only the Giant lock so we can check easily that ISR
disable/enable is used only in the right context.
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
PR 1743/cpu
* tm26/task1.c, tm27/task1.c: Add Simple Priority Scheduler as
complement to existing Deterministic Priority Scheduler. Modify these
tests to verify the scheduler they are designed to work with is the
default scheduler.
* tm01/task1.c, tm02/task1.c, tm03/task1.c, tm04/task1.c, tm05/task1.c,
tm06/task1.c, tm07/task1.c, tm08/task1.c, tm09/task1.c, tm10/task1.c,
tm11/task1.c, tm12/task1.c, tm13/task1.c, tm14/task1.c, tm16/task1.c,
tm17/task1.c, tm18/task1.c, tm19/task1.c, tm20/task1.c, tm21/task1.c,
tm23/task1.c, tm24/task1.c, tm25/task1.c, tm26/task1.c, tm27/task1.c,
tm28/task1.c, tm29/task1.c, tmoverhd/testtask.c: Run all tests
successfully with maxixum number of priorities as 16 instead of 256.
This was done by temporarily modifying the score priority.h maximum.
This allowed testing of all API code to ensure that it worked
properly with a reduced number of priorities. Most modifications were
to switch from hard-coded maximum to using the API provided methods
to determine maximum number of priority levels.
PR 597/tests
* tm02/system.h, tm03/system.h, tm04/system.h, tm05/system.h,
tm06/system.h, tm07/system.h, tm08/system.h, tm10/system.h,
tm11/system.h, tm12/system.h, tm13/system.h, tm14/system.h,
tm15/system.h, tm16/system.h, tm17/system.h, tm18/system.h,
tm19/system.h, tm21/system.h, tm22/system.h, tm23/system.h,
tm24/system.h, tm25/system.h, tm26/system.h, tm27/system.h,
tm27/task1.c, tm29/system.h: The actual workspace needed by the
tmtests depends on OPERATION_COUNT, but the definitions of
CONFIGURE_MAXIMIM_xxx in the their system.h files do not reflect
this. This results in unnecessary memory exhaustion on small-memory
systems such as the SS555.
* Per PR47 add support for buffered test output. This involved
adding defines to redirect output to a buffer and dump it when
full, at "test pause", and at exit. To avoid problems when redefining
exit(), all tests were modified to call rtems_test_exit().
Some tests, notable psxtests, had to be modified to include
the standard test macro .h file (pmacros.h or tmacros.h) to
enable this support.
* include/timesys.h, tm01/task1.c, tm02/task1.c, tm03/task1.c,
tm04/task1.c, tm05/task1.c, tm06/task1.c, tm07/task1.c, tm08/task1.c,
tm09/task1.c, tm10/task1.c, tm11/task1.c, tm12/task1.c, tm13/task1.c,
tm14/task1.c, tm15/task1.c, tm16/task1.c, tm17/task1.c, tm18/task1.c,
tm19/task1.c, tm20/task1.c, tm21/task1.c, tm22/task1.c, tm23/task1.c,
tm24/task1.c, tm25/task1.c, tm26/task1.c, tm27/task1.c, tm28/task1.c,
tm29/task1.c, tmck/task1.c, tmoverhd/testtask.c: Modified.
This fix is response to test results reported by Jerry Needell
<jerry.needell@unh.edu> for the SPARC/ERC32 and tracked as PR80.
* tm27/task1.c: Account for overhead in starting and stopping
the timer.
single biggest changes were the expansion of the workspace size
macro to include other types of objects and the increase in the
minimum stack size for most CPUs.
Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.
Configuration parameter maximum_devices added.
Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.
Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.
Added user extension for post-switch.
Utilized user extensions to implement API specific functionality
like signal dispatching.
Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.
Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.
All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.
Updated spsize to reflect new and moved variables.
Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.
Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.