diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-03-16 20:05:06 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-03-16 20:05:06 +0000 |
commit | 06dcaf09e6c0eae0b3a3c8d84adb663d03a53a4b (patch) | |
tree | 931cf314d5a87d1d3dcd6e5c366b5ce58270a6aa /cpukit/score/include/rtems/score/context.h | |
parent | 2011-03-16 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-06dcaf09e6c0eae0b3a3c8d84adb663d03a53a4b.tar.bz2 |
2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
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.
Diffstat (limited to 'cpukit/score/include/rtems/score/context.h')
-rw-r--r-- | cpukit/score/include/rtems/score/context.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/context.h b/cpukit/score/include/rtems/score/context.h index cdef1d3fa5..34baf32669 100644 --- a/cpukit/score/include/rtems/score/context.h +++ b/cpukit/score/include/rtems/score/context.h @@ -101,6 +101,23 @@ extern "C" { #define _Context_Restart_self( _the_context ) \ _CPU_Context_Restart_self( _the_context ) +#if defined(RTEMS_SMP) +/* + * @brief Switch to First Task on Secondary Core + * + * This routine is only used to switch to the first task on a + * secondary core in an SMP configuration. Since the switch + * to the first task is done from an interrupt handler, this + * may be different from simply restarting the currently running + * task. + * + * @param[in] _the_context is the context of the first thread to + * run on this core + */ +#define _Context_Switch_to_first_task_smp( _the_context ) \ + _CPU_Context_switch_to_first_task_smp( _the_context ) +#endif + /** * @brief Return Starting Address of Floating Point Context * |