summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/psxtransschedparam.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-12 08:31:35 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-16 12:48:37 +0100
commitc9a41b0043e67ed7f1be98f19b5f5fda994ceb55 (patch)
tree20a3eca7fab35a9f4e802d3fe3c01a57c8ca13b1 /cpukit/posix/src/psxtransschedparam.c
parentvalidation: Task create/construct (diff)
downloadrtems-c9a41b0043e67ed7f1be98f19b5f5fda994ceb55.tar.bz2
score: Add Thread_Configuration::cpu_time_budget
Move the CPU time budget to the thread configuration. This simplifies _Thread_Initialize().
Diffstat (limited to 'cpukit/posix/src/psxtransschedparam.c')
-rw-r--r--cpukit/posix/src/psxtransschedparam.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/cpukit/posix/src/psxtransschedparam.c b/cpukit/posix/src/psxtransschedparam.c
index 6fa7a43886..eba26d4932 100644
--- a/cpukit/posix/src/psxtransschedparam.c
+++ b/cpukit/posix/src/psxtransschedparam.c
@@ -42,27 +42,28 @@ int _POSIX_Thread_Translate_to_sched_policy(
}
int _POSIX_Thread_Translate_sched_param(
- int policy,
- const struct sched_param *param,
- Thread_CPU_budget_algorithms *budget_algorithm,
- Thread_CPU_budget_algorithm_callout *budget_callout
+ int policy,
+ const struct sched_param *param,
+ Thread_Configuration *config
)
{
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
- *budget_callout = NULL;
+ config->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
+ config->budget_callout = NULL;
+ config->cpu_time_budget = 0;
if ( policy == SCHED_OTHER ) {
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
+ config->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
return 0;
}
if ( policy == SCHED_FIFO ) {
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
+ config->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
return 0;
}
if ( policy == SCHED_RR ) {
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
+ config->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
+ config->cpu_time_budget = rtems_configuration_get_ticks_per_timeslice();
return 0;
}
@@ -80,8 +81,8 @@ int _POSIX_Thread_Translate_sched_param(
_Timespec_To_ticks( &param->sched_ss_init_budget ) )
return EINVAL;
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
- *budget_callout = _POSIX_Threads_Sporadic_budget_callout;
+ config->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
+ config->budget_callout = _POSIX_Threads_Sporadic_budget_callout;
return 0;
}
#endif