From 79d9523f1990e3349bd2dab83e92faee105b44a9 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 18 Jul 2013 11:39:44 +0200 Subject: rtems: Error for task variables on SMP Task variables are not supported on SMP. --- cpukit/rtems/src/taskvariableadd.c | 7 +++++++ cpukit/rtems/src/taskvariabledelete.c | 7 +++++++ cpukit/rtems/src/taskvariableget.c | 7 +++++++ testsuites/smptests/smpunsupported01/init.c | 9 +++++++++ 4 files changed, 30 insertions(+) diff --git a/cpukit/rtems/src/taskvariableadd.c b/cpukit/rtems/src/taskvariableadd.c index 7e03b660ca..5443bf24b9 100644 --- a/cpukit/rtems/src/taskvariableadd.c +++ b/cpukit/rtems/src/taskvariableadd.c @@ -19,6 +19,7 @@ #endif #include +#include #include #include @@ -32,6 +33,12 @@ rtems_status_code rtems_task_variable_add( Objects_Locations location; rtems_task_variable_t *tvp, *new; +#if defined( RTEMS_SMP ) + if ( rtems_configuration_is_smp_enabled() ) { + return RTEMS_NOT_IMPLEMENTED; + } +#endif + if ( !ptr ) return RTEMS_INVALID_ADDRESS; diff --git a/cpukit/rtems/src/taskvariabledelete.c b/cpukit/rtems/src/taskvariabledelete.c index 02f2bf0113..65efecbbf8 100644 --- a/cpukit/rtems/src/taskvariabledelete.c +++ b/cpukit/rtems/src/taskvariabledelete.c @@ -19,6 +19,7 @@ #endif #include +#include #include #include @@ -31,6 +32,12 @@ rtems_status_code rtems_task_variable_delete( Objects_Locations location; rtems_task_variable_t *tvp, *prev; +#if defined( RTEMS_SMP ) + if ( rtems_configuration_is_smp_enabled() ) { + return RTEMS_NOT_IMPLEMENTED; + } +#endif + if ( !ptr ) return RTEMS_INVALID_ADDRESS; diff --git a/cpukit/rtems/src/taskvariableget.c b/cpukit/rtems/src/taskvariableget.c index 338e108389..c1524a463e 100644 --- a/cpukit/rtems/src/taskvariableget.c +++ b/cpukit/rtems/src/taskvariableget.c @@ -19,6 +19,7 @@ #endif #include +#include #include #include @@ -38,6 +39,12 @@ rtems_status_code rtems_task_variable_get( Objects_Locations location; rtems_task_variable_t *tvp; +#if defined( RTEMS_SMP ) + if ( rtems_configuration_is_smp_enabled() ) { + return RTEMS_NOT_IMPLEMENTED; + } +#endif + if ( !ptr ) return RTEMS_INVALID_ADDRESS; diff --git a/testsuites/smptests/smpunsupported01/init.c b/testsuites/smptests/smpunsupported01/init.c index 3724cd4058..3379de614d 100644 --- a/testsuites/smptests/smpunsupported01/init.c +++ b/testsuites/smptests/smpunsupported01/init.c @@ -26,6 +26,15 @@ static void test(void) sc = rtems_task_delete(RTEMS_SELF); rtems_test_assert(sc == RTEMS_NOT_IMPLEMENTED); + + sc = rtems_task_variable_add(RTEMS_SELF, NULL, NULL); + rtems_test_assert(sc == RTEMS_NOT_IMPLEMENTED); + + sc = rtems_task_variable_delete(RTEMS_SELF, NULL); + rtems_test_assert(sc == RTEMS_NOT_IMPLEMENTED); + + sc = rtems_task_variable_get(RTEMS_SELF, NULL, NULL); + rtems_test_assert(sc == RTEMS_NOT_IMPLEMENTED); } static void Init(rtems_task_argument arg) -- cgit v1.2.3