forked from Imagelibrary/rtems
posix: Delete POSIX_API_Control::schedparam
This field was redundant.
This commit is contained in:
@@ -45,10 +45,10 @@ extern "C" {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
/** Back pointer to thread of this POSIX API control. */
|
/** Back pointer to thread of this POSIX API control. */
|
||||||
Thread_Control *thread;
|
Thread_Control *thread;
|
||||||
|
|
||||||
/** This is the POSIX threads attribute set. */
|
/** This is the POSIX threads attribute set. */
|
||||||
pthread_attr_t Attributes;
|
pthread_attr_t Attributes;
|
||||||
/** This is the thread's current set of scheduling parameters. */
|
|
||||||
struct sched_param schedparam;
|
|
||||||
/**
|
/**
|
||||||
* This is the timer which controls when the thread executes at
|
* This is the timer which controls when the thread executes at
|
||||||
* high and low priority when using the sporadic scheduler.
|
* high and low priority when using the sporadic scheduler.
|
||||||
|
|||||||
@@ -116,7 +116,9 @@ void _POSIX_Threads_Sporadic_budget_TSR( Watchdog_Control *watchdog )
|
|||||||
_Watchdog_Per_CPU_remove_relative( &api->Sporadic_timer );
|
_Watchdog_Per_CPU_remove_relative( &api->Sporadic_timer );
|
||||||
_POSIX_Threads_Sporadic_timer_insert( the_thread, api );
|
_POSIX_Threads_Sporadic_timer_insert( the_thread, api );
|
||||||
|
|
||||||
new_priority = _POSIX_Priority_To_core( api->schedparam.sched_priority );
|
new_priority = _POSIX_Priority_To_core(
|
||||||
|
api->Attributes.schedparam.sched_priority
|
||||||
|
);
|
||||||
|
|
||||||
_Thread_State_release( the_thread, &lock_context );
|
_Thread_State_release( the_thread, &lock_context );
|
||||||
|
|
||||||
@@ -167,7 +169,9 @@ void _POSIX_Threads_Sporadic_budget_callout(
|
|||||||
|
|
||||||
_Thread_Change_priority(
|
_Thread_Change_priority(
|
||||||
the_thread,
|
the_thread,
|
||||||
_POSIX_Priority_To_core( api->schedparam.sched_ss_low_priority ),
|
_POSIX_Priority_To_core(
|
||||||
|
api->Attributes.schedparam.sched_ss_low_priority
|
||||||
|
),
|
||||||
NULL,
|
NULL,
|
||||||
_POSIX_Threads_Sporadic_budget_callout_filter,
|
_POSIX_Threads_Sporadic_budget_callout_filter,
|
||||||
true
|
true
|
||||||
@@ -193,9 +197,9 @@ static bool _POSIX_Threads_Create_extension(
|
|||||||
/* XXX check all fields are touched */
|
/* XXX check all fields are touched */
|
||||||
api->thread = created;
|
api->thread = created;
|
||||||
_POSIX_Threads_Initialize_attributes( &api->Attributes );
|
_POSIX_Threads_Initialize_attributes( &api->Attributes );
|
||||||
api->schedparam = _POSIX_Threads_Default_attributes.schedparam;
|
api->Attributes.schedparam.sched_priority = _POSIX_Priority_From_core(
|
||||||
api->schedparam.sched_priority =
|
created->current_priority
|
||||||
_POSIX_Priority_From_core( created->current_priority );
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the thread is not a posix thread, then all posix signals are blocked
|
* If the thread is not a posix thread, then all posix signals are blocked
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ int pthread_create(
|
|||||||
case PTHREAD_INHERIT_SCHED:
|
case PTHREAD_INHERIT_SCHED:
|
||||||
api = executing->API_Extensions[ THREAD_API_POSIX ];
|
api = executing->API_Extensions[ THREAD_API_POSIX ];
|
||||||
schedpolicy = api->Attributes.schedpolicy;
|
schedpolicy = api->Attributes.schedpolicy;
|
||||||
schedparam = api->schedparam;
|
schedparam = api->Attributes.schedparam;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PTHREAD_EXPLICIT_SCHED:
|
case PTHREAD_EXPLICIT_SCHED:
|
||||||
@@ -226,7 +226,6 @@ int pthread_create(
|
|||||||
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
|
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
|
||||||
|
|
||||||
_POSIX_Threads_Copy_attributes( &api->Attributes, the_attr );
|
_POSIX_Threads_Copy_attributes( &api->Attributes, the_attr );
|
||||||
api->schedparam = schedparam;
|
|
||||||
|
|
||||||
if ( schedpolicy == SCHED_SPORADIC ) {
|
if ( schedpolicy == SCHED_SPORADIC ) {
|
||||||
_ISR_lock_ISR_disable( &lock_context );
|
_ISR_lock_ISR_disable( &lock_context );
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ int pthread_getschedparam(
|
|||||||
|
|
||||||
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
|
api = the_thread->API_Extensions[ THREAD_API_POSIX ];
|
||||||
*policy = api->Attributes.schedpolicy;
|
*policy = api->Attributes.schedpolicy;
|
||||||
*param = api->schedparam;
|
*param = api->Attributes.schedparam;
|
||||||
param->sched_priority = _POSIX_Priority_From_core(
|
param->sched_priority = _POSIX_Priority_From_core(
|
||||||
the_thread->real_priority
|
the_thread->real_priority
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ int pthread_setschedparam(
|
|||||||
_Watchdog_Per_CPU_remove_relative( &api->Sporadic_timer );
|
_Watchdog_Per_CPU_remove_relative( &api->Sporadic_timer );
|
||||||
}
|
}
|
||||||
|
|
||||||
api->schedparam = *param;
|
|
||||||
api->Attributes.schedpolicy = policy;
|
api->Attributes.schedpolicy = policy;
|
||||||
api->Attributes.schedparam = *param;
|
api->Attributes.schedparam = *param;
|
||||||
|
|
||||||
@@ -97,7 +96,9 @@ int pthread_setschedparam(
|
|||||||
case SCHED_RR:
|
case SCHED_RR:
|
||||||
the_thread->cpu_time_budget =
|
the_thread->cpu_time_budget =
|
||||||
rtems_configuration_get_ticks_per_timeslice();
|
rtems_configuration_get_ticks_per_timeslice();
|
||||||
new_priority = _POSIX_Priority_To_core( api->schedparam.sched_priority );
|
new_priority = _POSIX_Priority_To_core(
|
||||||
|
api->Attributes.schedparam.sched_priority
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ int pthread_setschedprio( pthread_t thread, int prio )
|
|||||||
cpu_self = _Thread_Dispatch_disable_critical( &lock_context );
|
cpu_self = _Thread_Dispatch_disable_critical( &lock_context );
|
||||||
|
|
||||||
_Thread_State_acquire_critical( the_thread, &lock_context );
|
_Thread_State_acquire_critical( the_thread, &lock_context );
|
||||||
api->schedparam.sched_priority = prio;
|
|
||||||
api->Attributes.schedparam.sched_priority = prio;
|
api->Attributes.schedparam.sched_priority = prio;
|
||||||
_Thread_State_release( the_thread, &lock_context );
|
_Thread_State_release( the_thread, &lock_context );
|
||||||
|
|
||||||
|
|||||||
@@ -711,7 +711,6 @@ struct _Thread_Control {
|
|||||||
* the following fields
|
* the following fields
|
||||||
*
|
*
|
||||||
* - POSIX_API_Control::Attributes,
|
* - POSIX_API_Control::Attributes,
|
||||||
* - POSIX_API_Control::schedparam,
|
|
||||||
* - RTEMS_API_Control::Signal,
|
* - RTEMS_API_Control::Signal,
|
||||||
* - Thread_Control::budget_algorithm,
|
* - Thread_Control::budget_algorithm,
|
||||||
* - Thread_Control::budget_callout,
|
* - Thread_Control::budget_callout,
|
||||||
|
|||||||
Reference in New Issue
Block a user