PR 1729/cpukit
* Makefile.am, configure.ac: Add next step in SMP support. This adds an
allocated array of the Per_CPU structures to support multiple cpus vs
a single instance of the structure which is still used if SMP support
is disabled. Configuration support is also added to explicitly enable
or disable SMP. But SMP can only be enabled for the CPUs which will
support it initially -- SPARC and i386. With the stub BSP support, a
BSP can be run as a single core SMP system from an RTEMS data
structure standpoint.
PR 1729/cpukit
* shared/irq/irq_asm.S: Add next step in SMP support. This adds an
allocated array of the Per_CPU structures to support multiple cpus vs
a single instance of the structure which is still used if SMP support
is disabled. Configuration support is also added to explicitly enable
or disable SMP. But SMP can only be enabled for the CPUs which will
support it initially -- SPARC and i386. With the stub BSP support, a
BSP can be run as a single core SMP system from an RTEMS data
structure standpoint.
PR 1729/cpukit
* configure.ac, sapi/include/confdefs.h, sapi/src/exinit.c,
score/Makefile.am, score/preinstall.am,
score/cpu/i386/rtems/score/cpu.h, score/cpu/sparc/cpu_asm.S,
score/cpu/sparc/rtems/score/cpu.h,
score/include/rtems/score/basedefs.h,
score/include/rtems/score/context.h,
score/include/rtems/score/percpu.h, score/src/percpu.c,
score/src/thread.c, score/src/threadcreateidle.c: Add next step in
SMP support. This adds an allocated array of the Per_CPU structures
to support multiple cpus vs a single instance of the structure which
is still used if SMP support is disabled. Configuration support is
also added to explicitly enable or disable SMP. But SMP can only be
enabled for the CPUs which will support it initially -- SPARC and
i386. With the stub BSP support, a BSP can be run as a single core
SMP system from an RTEMS data structure standpoint.
* aclocal/check-smp.m4, aclocal/enable-smp.m4,
score/include/rtems/bspsmp.h, score/include/rtems/score/smplock.h,
score/src/smp.c, score/src/smplock.c: New files.
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.
PR 1743/cpu
* user/conf.t: Add Simple Priority Scheduler as complement to existing
Deterministic Priority Scheduler. This scheduler serves both as an
example and as a lighter weight implementation for smaller systems.
PR 1743/cpu
* Makefile.am, configure.ac, spsize/size.c: Add Simple Priority
Scheduler as complement to existing Deterministic Priority Scheduler.
This scheduler serves both as an example and as a lighter weight
implementation for smaller systems.
* spsimplesched01/.cvsignore, spsimplesched01/Makefile.am,
spsimplesched01/init.c, spsimplesched01/spsimplesched01.doc,
spsimplesched01/spsimplesched01.scn, spsimplesched02/.cvsignore,
spsimplesched02/Makefile.am, spsimplesched02/init.c,
spsimplesched02/spsimplesched02.doc,
spsimplesched02/spsimplesched02.scn, spsimplesched03/.cvsignore,
spsimplesched03/Makefile.am, spsimplesched03/init.c,
spsimplesched03/spsimplesched03.doc,
spsimplesched03/spsimplesched03.scn: New files.
PR 1743/cpu
* sapi/include/confdefs.h, score/Makefile.am, score/preinstall.am: Add
Simple Priority Scheduler as complement to existing Deterministic
Priority Scheduler. This scheduler serves both as an example and as a
lighter weight implementation for smaller systems.
* score/include/rtems/score/schedulersimple.h,
score/inline/rtems/score/schedulersimple.inl,
score/src/schedulersimple.c, score/src/schedulersimpleblock.c,
score/src/schedulersimpleenqueue.c,
score/src/schedulersimpleenqueuefirst.c,
score/src/schedulersimpleextract.c,
score/src/schedulersimplereadyqueueenqueue.c,
score/src/schedulersimplereadyqueueenqueuefirst.c,
score/src/schedulersimpleschedule.c,
score/src/schedulersimpleunblock.c, score/src/schedulersimpleyield.c:
New files.
* libfs/src/dosfs/msdos_format.c: Address Coverity issue 183 which was
where an expression evaluated to a constant and issue 185 which was a
potential (although unlikely in expected usage) time-of-check,
time-of-use race condition.
* libfs/src/rfs/rtems-rfs-rtems-file.c,
libfs/src/rfs/rtems-rfs-rtems.c, libfs/src/rfs/rtems-rfs-rtems.h:
The fix to the removal of file_info from iop was broken. The
node_access field must be the inode number in the RFS because the
file system ops provides no way to tell is a stat call is the
result of stat, fstat, or lstat. The solution is to move the file
handle to node_access_2 which is also shared with doff but these
do not overlap.
PR 1763/shell
* libmisc/shell/hexdump-conv.c: Remove debug hacks.
PR 1757/filesystem
* libfs/src/rfs/rtems-rfs-block-pos.h,
libfs/src/rfs/rtems-rfs-block.h, libfs/src/rfs/rtems-rfs-file.c,
libfs/src/rfs/rtems-rfs-rtems-file.c: Set the file size in
iop-size when a file is open. Fix lseek to end of file then write
for sizes less than half the file system block size.
* libfs/src/rfs/rtems-rfs-rtems-dev.c,
libfs/src/rfs/rtems-rfs-rtems-dir.c,
libfs/src/rfs/rtems-rfs-rtems.c, libfs/src/rfs/rtems-rfs-rtems.h:
Fix the fstat and fchmod calls due to the change in the iop struct
where pathinfo went away. The node_access field in pathinfo was
overloaded.
PR 1762/cpukit
* Makefile.am, preinstall.am, console/console.c, console/keyboard.c,
console/keyboard.h, console/pc_keyb.c, console/ps2_mouse.c,
console/vgainit.c: Made mouse parser engine generic. Now use generic
serial mouse driver. Moved many externs from C to .h.
* console/kbd_parser.c, console/serial_mouse_config.c: New files.
* console/mouse_parser.c, console/mouse_parser.h,
console/serial_mouse.c, console/serial_mouse.h: Removed.
PR 1762/cpukit
* Makefile.am, preinstall.am, libmisc/Makefile.am, wrapup/Makefile.am:
Add generic serial mouse driver and mouse parser. The parser code was
in the pc386 BSP but was generic so cleaned up and placed here.
Serial mouse driver itself is new.
* libmisc/mouse/README, libmisc/mouse/mouse_parser.c,
libmisc/mouse/mouse_parser.h, libmisc/mouse/serial_mouse.c,
libmisc/mouse/serial_mouse.h: New files.
* sp08/Makefile.am, sp08/init.c, sp08/sp08.scn, sp09/screen07.c,
sp09/sp09.scn: Improve coverage. Change mode while system not up and
broadcast a message that is too large.
* sp08/system.h, sp08/task1.c: Removed.
* Makefile.am, configure.ac: Add sp73. This is a new test designed
to improve coverage of the thread yield logic.
* sp73/.cvsignore, sp73/Makefile.am, sp73/init.c, sp73/sp73.doc,
sp73/sp73.scn: New files.