diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-18 11:39:44 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 16:46:01 +0200 |
commit | 79d9523f1990e3349bd2dab83e92faee105b44a9 (patch) | |
tree | 0ecfc6c0e27b10e6a795083176567245dbdafa80 | |
parent | rtems: Error for task delete on SMP (diff) | |
download | rtems-79d9523f1990e3349bd2dab83e92faee105b44a9.tar.bz2 |
rtems: Error for task variables on SMP
Task variables are not supported on SMP.
-rw-r--r-- | cpukit/rtems/src/taskvariableadd.c | 7 | ||||
-rw-r--r-- | cpukit/rtems/src/taskvariabledelete.c | 7 | ||||
-rw-r--r-- | cpukit/rtems/src/taskvariableget.c | 7 | ||||
-rw-r--r-- | testsuites/smptests/smpunsupported01/init.c | 9 |
4 files changed, 30 insertions, 0 deletions
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 <rtems/system.h> +#include <rtems/config.h> #include <rtems/rtems/tasks.h> #include <rtems/score/wkspace.h> @@ -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 <rtems/system.h> +#include <rtems/config.h> #include <rtems/rtems/tasks.h> #include <rtems/score/wkspace.h> @@ -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 <rtems/system.h> +#include <rtems/config.h> #include <rtems/rtems/tasks.h> #include <rtems/score/wkspace.h> @@ -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) |