diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-04-26 11:00:24 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-04-27 19:40:12 +0200 |
commit | 4b7c77bce370d2ff88c9fb9036e5f3a3b1da9cb7 (patch) | |
tree | 64814323130a90a2ae790a5a787d8bd8989648e9 | |
parent | Simplify get affinitiy directives (diff) | |
download | rtems-4b7c77bce370d2ff88c9fb9036e5f3a3b1da9cb7.tar.bz2 |
rtems: Change rtems_task_get_affinity() status
In case the processor set is not large enough to contain the processor
affinity set of the task return RTEMS_INVALID_SIZE instead of
RTEMS_INVALID_NUMBER. This is more in line with other directives since
the issue is related to the size of an object.
Close #4393.
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/score/schedulerimpl.h | 2 | ||||
-rw-r--r-- | cpukit/include/rtems/score/status.h | 2 | ||||
-rw-r--r-- | cpukit/score/src/schedulergetaffinity.c | 2 | ||||
-rw-r--r-- | testsuites/smptests/smpaffinity01/init.c | 2 | ||||
-rw-r--r-- | testsuites/sptests/spscheduler01/init.c | 3 |
5 files changed, 7 insertions, 4 deletions
diff --git a/cpukit/include/rtems/score/schedulerimpl.h b/cpukit/include/rtems/score/schedulerimpl.h index 397789372c..65c600b583 100644 --- a/cpukit/include/rtems/score/schedulerimpl.h +++ b/cpukit/include/rtems/score/schedulerimpl.h @@ -695,7 +695,7 @@ RTEMS_INLINE_ROUTINE const Processor_mask *_Scheduler_Get_processors( * * @retval STATUS_SUCCESSFUL The operation succeeded. * - * @retval STATUS_INVALID_NUMBER The processor set was too small. + * @retval STATUS_INVALID_SIZE The processor set was too small. */ Status_Control _Scheduler_Get_affinity( Thread_Control *the_thread, diff --git a/cpukit/include/rtems/score/status.h b/cpukit/include/rtems/score/status.h index ba3910d40d..236ae52d7b 100644 --- a/cpukit/include/rtems/score/status.h +++ b/cpukit/include/rtems/score/status.h @@ -118,6 +118,8 @@ typedef enum { STATUS_BUILD( STATUS_CLASSIC_INVALID_NUMBER, EINVAL ), STATUS_INVALID_PRIORITY = STATUS_BUILD( STATUS_CLASSIC_INVALID_PRIORITY, EINVAL ), + STATUS_INVALID_SIZE = + STATUS_BUILD( STATUS_CLASSIC_INVALID_SIZE, EINVAL ), STATUS_MAXIMUM_COUNT_EXCEEDED = STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EOVERFLOW ), STATUS_MESSAGE_INVALID_SIZE = diff --git a/cpukit/score/src/schedulergetaffinity.c b/cpukit/score/src/schedulergetaffinity.c index 09eaa187dd..84e404e8df 100644 --- a/cpukit/score/src/schedulergetaffinity.c +++ b/cpukit/score/src/schedulergetaffinity.c @@ -51,7 +51,7 @@ Status_Control _Scheduler_Get_affinity( _Scheduler_Release_critical( scheduler, &lock_context ); if ( status != PROCESSOR_MASK_COPY_LOSSLESS ) { - return STATUS_INVALID_NUMBER; + return STATUS_INVALID_SIZE; } return STATUS_SUCCESSFUL; diff --git a/testsuites/smptests/smpaffinity01/init.c b/testsuites/smptests/smpaffinity01/init.c index 5d79259e9f..9ec687d816 100644 --- a/testsuites/smptests/smpaffinity01/init.c +++ b/testsuites/smptests/smpaffinity01/init.c @@ -85,7 +85,7 @@ void Validate_getaffinity_errors(void) "Init - rtems_task_get_affinity - Invalid cpusetsize - RTEMS_INVALID_NUMBER" ); sc = rtems_task_get_affinity( Init_id, 1, &cpuset ); - rtems_test_assert( sc == RTEMS_INVALID_NUMBER ); + rtems_test_assert( sc == RTEMS_INVALID_SIZE ); /* Verify rtems_task_get_affinity validates cpuset */ puts("Init - rtems_task_get_affinity - Invalid cpuset - RTEMS_INVALID_ADDRESS"); diff --git a/testsuites/sptests/spscheduler01/init.c b/testsuites/sptests/spscheduler01/init.c index 5ed17057d3..94ecfe4ef5 100644 --- a/testsuites/sptests/spscheduler01/init.c +++ b/testsuites/sptests/spscheduler01/init.c @@ -49,6 +49,7 @@ static void assert_eno(rtems_status_code sc, int eno) rtems_test_assert(eno == ESRCH); break; case RTEMS_INVALID_NUMBER: + case RTEMS_INVALID_SIZE: rtems_test_assert(eno == EINVAL); break; default: @@ -139,7 +140,7 @@ static void test_task_get_set_affinity(void) rtems_test_assert(sc == RTEMS_INVALID_ADDRESS); sc = task_get_affinity(RTEMS_SELF, 0, &cpuset); - rtems_test_assert(sc == RTEMS_INVALID_NUMBER); + rtems_test_assert(sc == RTEMS_INVALID_SIZE); sc = task_set_affinity(RTEMS_SELF, 0, &cpuset); rtems_test_assert(sc == RTEMS_INVALID_NUMBER); |