[rtems commit] sptests/spcontext01: Add second volatile clobber

Sebastian Huber sebh at rtems.org
Tue Jun 9 07:31:00 UTC 2015


Module:    rtems
Branch:    master
Commit:    b88d346fbde59dcdee428f224ff1c3a01419dabe
Changeset: http://git.rtems.org/rtems/commit/?id=b88d346fbde59dcdee428f224ff1c3a01419dabe

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jun  9 09:28:36 2015 +0200

sptests/spcontext01: Add second volatile clobber

Do a volatile clobber in the context switch extension to cover the path
through _Thread_Do_dispatch() invoked after interrupt processing.

---

 testsuites/sptests/spcontext01/init.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/testsuites/sptests/spcontext01/init.c b/testsuites/sptests/spcontext01/init.c
index 67910c4..e093c50 100644
--- a/testsuites/sptests/spcontext01/init.c
+++ b/testsuites/sptests/spcontext01/init.c
@@ -274,6 +274,13 @@ static void Init(rtems_task_argument arg)
   rtems_test_exit(0);
 }
 
+static void switch_extension(Thread_Control *executing, Thread_Control *heir)
+{
+  uintptr_t pattern = (uintptr_t) 0xffffffffffffffffU;
+
+  _CPU_Context_volatile_clobber(pattern);
+}
+
 #define CONFIGURE_MICROSECONDS_PER_TICK 1000
 
 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
@@ -282,7 +289,9 @@ static void Init(rtems_task_argument arg)
 #define CONFIGURE_MAXIMUM_TASKS 4
 #define CONFIGURE_MAXIMUM_TIMERS 1
 
-#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
+#define CONFIGURE_INITIAL_EXTENSIONS \
+  { .thread_switch = switch_extension }, \
+  RTEMS_TEST_INITIAL_EXTENSION
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 



More information about the vc mailing list