From 8abd175669a6ec2e5b46216947e68eaf4bd29cdf Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 3 Sep 2021 09:33:01 +0200 Subject: score: Return status in _TOD_Adjust() --- cpukit/include/rtems/score/todimpl.h | 5 ++++- cpukit/posix/src/adjtime.c | 6 +++++- cpukit/score/src/coretodadjust.c | 7 +++++-- 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'cpukit') diff --git a/cpukit/include/rtems/score/todimpl.h b/cpukit/include/rtems/score/todimpl.h index 316a56ec74..02a7fb1092 100644 --- a/cpukit/include/rtems/score/todimpl.h +++ b/cpukit/include/rtems/score/todimpl.h @@ -337,8 +337,11 @@ RTEMS_INLINE_ROUTINE void _TOD_Get_timeval( * specified amount. * * @param delta is the amount to adjust. + * + * @retval STATUS_SUCCESSFUL Successful operation. + * @retval other Some error occurred. */ -void _TOD_Adjust( +Status_Control _TOD_Adjust( const struct timespec *delta ); diff --git a/cpukit/posix/src/adjtime.c b/cpukit/posix/src/adjtime.c index ab61693f19..ec8cb19a2e 100644 --- a/cpukit/posix/src/adjtime.c +++ b/cpukit/posix/src/adjtime.c @@ -44,6 +44,7 @@ int adjtime( ) { struct timespec delta_as_timespec; + Status_Control status; /* * Simple validations @@ -83,7 +84,10 @@ int adjtime( /* * Now apply the adjustment */ - _TOD_Adjust( &delta_as_timespec ); + status = _TOD_Adjust( &delta_as_timespec ); + if ( status != STATUS_SUCCESSFUL ) { + rtems_set_errno_and_return_minus_one( STATUS_GET_POSIX( status ) ); + } return 0; } diff --git a/cpukit/score/src/coretodadjust.c b/cpukit/score/src/coretodadjust.c index a746b0e004..90c99803e1 100644 --- a/cpukit/score/src/coretodadjust.c +++ b/cpukit/score/src/coretodadjust.c @@ -22,12 +22,13 @@ #include -void _TOD_Adjust( +Status_Control _TOD_Adjust( const struct timespec *delta ) { ISR_lock_Context lock_context; struct timespec tod; + Status_Control status; /* * Currently, RTEMS does the adjustment in one movement. @@ -41,6 +42,8 @@ void _TOD_Adjust( _TOD_Acquire( &lock_context ); _TOD_Get( &tod ); _Timespec_Add_to( &tod, delta ); - _TOD_Set( &tod, &lock_context ); + status = _TOD_Set( &tod, &lock_context ); _TOD_Unlock(); + + return status; } -- cgit v1.2.3