diff options
Diffstat (limited to 'testsuites/validation/tr-tq-surrender-priority-inherit.c')
-rw-r--r-- | testsuites/validation/tr-tq-surrender-priority-inherit.c | 2522 |
1 files changed, 2522 insertions, 0 deletions
diff --git a/testsuites/validation/tr-tq-surrender-priority-inherit.c b/testsuites/validation/tr-tq-surrender-priority-inherit.c new file mode 100644 index 0000000000..d0a580f988 --- /dev/null +++ b/testsuites/validation/tr-tq-surrender-priority-inherit.c @@ -0,0 +1,2522 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup ScoreTqReqSurrenderPriorityInherit + */ + +/* + * Copyright (C) 2021 embedded brains GmbH & Co. KG + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file is part of the RTEMS quality process and was automatically + * generated. If you find something that needs to be fixed or + * worded better please post a report or patch to an RTEMS mailing list + * or raise a bug report: + * + * https://www.rtems.org/bugs.html + * + * For information on updating and regenerating please refer to the How-To + * section in the Software Requirements Engineering chapter of the + * RTEMS Software Engineering manual. The manual is provided as a part of + * a release. For development sources please refer to the online + * documentation at: + * + * https://docs.rtems.org + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <rtems/score/smpbarrier.h> +#include <rtems/score/threadimpl.h> + +#include "tr-tq-surrender-priority-inherit.h" +#include "tx-support.h" + +#include <rtems/test.h> + +/** + * @defgroup ScoreTqReqSurrenderPriorityInherit \ + * spec:/score/tq/req/surrender-priority-inherit + * + * @ingroup TestsuitesValidationNoClock0 + * + * @{ + */ + +typedef struct { + uint32_t Skip : 1; + uint32_t Pre_SchedulerCount_NA : 1; + uint32_t Pre_InheritedPriority_NA : 1; + uint32_t Pre_PreviousHelping_NA : 1; + uint32_t Pre_UsedScheduler_NA : 1; + uint32_t Pre_NewPriority_NA : 1; + uint32_t Pre_NewHelping_NA : 1; + uint32_t Pre_Suspended_NA : 1; + uint32_t Pre_WaitState_NA : 1; + uint32_t Post_Dequeue : 1; + uint32_t Post_Unblock : 2; + uint32_t Post_PreviousOwnerPriority : 2; + uint32_t Post_NewPriority : 2; + uint32_t Post_RemoveHelper : 2; + uint32_t Post_AddHelper : 2; + uint32_t Post_Suspended : 2; +} ScoreTqReqSurrenderPriorityInherit_Entry; + +/** + * @brief Test context for spec:/score/tq/req/surrender-priority-inherit test + * case. + */ +typedef struct { + /** + * @brief This member contains the call within ISR request. + */ + CallWithinISRRequest request; + + /** + * @brief This member contains the barrier to synchronize the runner and the + * worker. + */ + SMP_barrier_Control barrier; + + /** + * @brief If this member is true, then all priorities of the previous owner + * inherited from the thread queue thread shall be dispensable. + */ + bool inherited_priorities_are_dispensible; + + /** + * @brief If this member is true, then all helping schedulers of the previous + * owner thread gained through the thread queue shall be dispensable. + */ + bool helping_schedules_are_dispensible; + + /** + * @brief If this member is true, then the previous owner thread shall use + * helping scheduler. + */ + bool use_helping_scheduler; + + /** + * @brief If this member is true, then the new owner thread shall gain a + * vital priority. + */ + bool gains_new_priority; + + /** + * @brief If this member is true, then the new owner thread shall gain a + * vital helping scheduler. + */ + bool gains_new_helping_scheduler; + + /** + * @brief If this member is true, then the new owner thread shall be + * suspended. + */ + bool suspended; + + /** + * @brief If this member is true, then the new owner thread shall be in the + * intend to block wait state. + */ + bool intend_to_block; + + /** + * @brief If this member is true, then the action was performed. + */ + bool action_performed; + + /** + * @brief This member contains the current priority of the previous owner + * thread before the thread queue surrender operation. + */ + rtems_task_priority priority_before; + + /** + * @brief This member contains the current priority of the previous owner + * thread after the thread queue surrender operation. + */ + rtems_task_priority priority_after; + + /** + * @brief This member contains the identifier of the previous owner thread. + */ + rtems_id previous_owner; + + /** + * @brief This member contains a copy of the corresponding + * ScoreTqReqSurrenderPriorityInherit_Run() parameter. + */ + TQContext *tq_ctx; + + struct { + /** + * @brief This member defines the pre-condition states for the next action. + */ + size_t pcs[ 8 ]; + + /** + * @brief If this member is true, then the test action loop is executed. + */ + bool in_action_loop; + + /** + * @brief This member contains the next transition map index. + */ + size_t index; + + /** + * @brief This member contains the current transition map entry. + */ + ScoreTqReqSurrenderPriorityInherit_Entry entry; + + /** + * @brief If this member is true, then the current transition variant + * should be skipped. + */ + bool skip; + } Map; +} ScoreTqReqSurrenderPriorityInherit_Context; + +static ScoreTqReqSurrenderPriorityInherit_Context + ScoreTqReqSurrenderPriorityInherit_Instance; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_SchedulerCount[] = { + "One", + "Two", + "More", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_InheritedPriority[] = { + "Vital", + "Dispensable", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_PreviousHelping[] = { + "Vital", + "Dispensable", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_UsedScheduler[] = { + "Home", + "Helping", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_NewPriority[] = { + "Vital", + "Dispensable", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_NewHelping[] = { + "Vital", + "Dispensable", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_Suspended[] = { + "Yes", + "No", + "NA" +}; + +static const char * const ScoreTqReqSurrenderPriorityInherit_PreDesc_WaitState[] = { + "Blocked", + "IntendToBlock", + "NA" +}; + +static const char * const * const ScoreTqReqSurrenderPriorityInherit_PreDesc[] = { + ScoreTqReqSurrenderPriorityInherit_PreDesc_SchedulerCount, + ScoreTqReqSurrenderPriorityInherit_PreDesc_InheritedPriority, + ScoreTqReqSurrenderPriorityInherit_PreDesc_PreviousHelping, + ScoreTqReqSurrenderPriorityInherit_PreDesc_UsedScheduler, + ScoreTqReqSurrenderPriorityInherit_PreDesc_NewPriority, + ScoreTqReqSurrenderPriorityInherit_PreDesc_NewHelping, + ScoreTqReqSurrenderPriorityInherit_PreDesc_Suspended, + ScoreTqReqSurrenderPriorityInherit_PreDesc_WaitState, + NULL +}; + +typedef ScoreTqReqSurrenderPriorityInherit_Context Context; + +#define NEW_OWNER TQ_BLOCKER_A + +#define PREV_OWNER_HELPER_A TQ_BLOCKER_B + +#define PREV_OWNER_HELPER_B TQ_BLOCKER_C + +#define PREV_OWNER_HELPER_C TQ_BLOCKER_D + +#define NEW_OWNER_NEW_HELPER TQ_BLOCKER_E + +#define NEW_OWNER_NEW_PRIORITY TQ_WORKER_F + +#define NEW_OWNER_OLD_PRIORITY TQ_HELPER_C + +#define PREV_OWNER_MOVER TQ_HELPER_A + +#define PREV_OWNER TQ_HELPER_A + +static const rtems_tcb *GetUnblock( Context *ctx, size_t *index ) +{ + return TQGetNextUnblock( ctx->tq_ctx, index )->thread; +} + +static const rtems_tcb *GetTCB( Context *ctx, TQWorkerKind worker ) +{ + return ctx->tq_ctx->worker_tcb[ worker ]; +} + +static void Surrender( Context *ctx ) +{ + Status_Control status; + + if ( ctx->suspended ) { + SuspendTask( ctx->tq_ctx->worker_id[ NEW_OWNER ] ); + } + + ctx->priority_before = GetSelfPriority(); + TQSchedulerRecordStart( ctx->tq_ctx ); + status = TQSurrender( ctx->tq_ctx ); + T_eq_int( status, TQConvertStatus( ctx->tq_ctx, STATUS_SUCCESSFUL ) ); + TQSchedulerRecordStop( ctx->tq_ctx ); + T_eq_ptr( TQGetOwner( ctx->tq_ctx ), ctx->tq_ctx->worker_tcb[ NEW_OWNER ] ); + ctx->priority_after = GetSelfPriority(); +} + +#if defined(RTEMS_SMP) +static void Delay( void *arg ) +{ + Context *ctx; + SMP_barrier_State state; + + ctx = arg; + _SMP_barrier_State_initialize( &state ); + + /* B0 */ + _SMP_barrier_Wait( &ctx->barrier, &state, 2 ); + + /* B1 */ + _SMP_barrier_Wait( &ctx->barrier, &state, 2 ); +} + +static void SchedulerBlock( + void *arg, + const T_scheduler_event *event, + T_scheduler_when when +) +{ + Context *ctx; + + ctx = arg; + + if ( + when == T_SCHEDULER_BEFORE && + event->operation == T_SCHEDULER_BLOCK + ) { + T_scheduler_set_event_handler( NULL, NULL ); + ctx->request.handler = Delay; + CallWithinISRSubmit( &ctx->request ); + } +} +#endif + +static void Setup( Context *ctx ) +{ +#if defined(RTEMS_SMP) + TQSetScheduler( ctx->tq_ctx, NEW_OWNER, SCHEDULER_B_ID, PRIO_NORMAL ); + TQSetPriority( ctx->tq_ctx, PREV_OWNER_HELPER_A, PRIO_VERY_HIGH ); + TQSetScheduler( + ctx->tq_ctx, + PREV_OWNER_HELPER_B, + SCHEDULER_B_ID, + PRIO_HIGH + ); + TQSetPriority( ctx->tq_ctx, NEW_OWNER_OLD_PRIORITY, PRIO_VERY_LOW ); + TQSetPriority( ctx->tq_ctx, NEW_OWNER_NEW_PRIORITY, PRIO_LOW ); + + TQSetPriority( ctx->tq_ctx, PREV_OWNER_MOVER, PRIO_ULTRA_HIGH ); + + if ( rtems_scheduler_get_processor_maximum() >= 3 ) { + TQSetScheduler( + ctx->tq_ctx, + PREV_OWNER_HELPER_C, + SCHEDULER_C_ID, + PRIO_HIGH + ); + } +#else + TQSetPriority( ctx->tq_ctx, NEW_OWNER, PRIO_HIGH ); + TQSetPriority( ctx->tq_ctx, PREV_OWNER_HELPER_A, PRIO_HIGH ); +#endif + + TQSetPriority( ctx->tq_ctx, TQ_HELPER_B, PRIO_ULTRA_LOW ); +} + +static void Action( Context *ctx ) +{ + Status_Control status; +#if defined(RTEMS_SMP) + SMP_barrier_State state; +#endif + + ctx->action_performed = true; + ctx->previous_owner = ctx->tq_ctx->runner_id; + TQMutexObtain( ctx->tq_ctx, TQ_MUTEX_A ); +#if defined(RTEMS_SMP) + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_MUTEX_B_OBTAIN + ); +#endif + + if ( ctx->inherited_priorities_are_dispensible ) { + TQSend( + ctx->tq_ctx, + PREV_OWNER_HELPER_A, + TQ_EVENT_MUTEX_A_OBTAIN | TQ_EVENT_MUTEX_A_RELEASE + ); + } + +#if defined(RTEMS_SMP) + if ( ctx->helping_schedules_are_dispensible ) { + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + PREV_OWNER_HELPER_B, + TQ_EVENT_MUTEX_A_OBTAIN | TQ_EVENT_MUTEX_A_RELEASE + ); + + if ( ctx->gains_new_priority && ctx->gains_new_helping_scheduler ) { + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + PREV_OWNER_HELPER_C, + TQ_EVENT_MUTEX_A_OBTAIN | TQ_EVENT_MUTEX_A_RELEASE + ); + } + } +#endif + + status = TQEnqueue( ctx->tq_ctx, TQ_NO_WAIT ); + T_eq_int( status, TQConvertStatus( ctx->tq_ctx, STATUS_SUCCESSFUL ) ); + +#if defined(RTEMS_SMP) + if ( ctx->intend_to_block ) { + _SMP_barrier_Control_initialize( &ctx->barrier ); + _SMP_barrier_State_initialize( &state ); + + T_scheduler_set_event_handler( SchedulerBlock, ctx ); + TQSend( ctx->tq_ctx, NEW_OWNER, TQ_EVENT_ENQUEUE ); + + /* B0 */ + _SMP_barrier_Wait( &ctx->barrier, &state, 2 ); + } else { + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_ENQUEUE + ); + } + + if ( ctx->gains_new_priority ) { + TQSend( + ctx->tq_ctx, + NEW_OWNER_OLD_PRIORITY, + TQ_EVENT_HELPER_B_SYNC | TQ_EVENT_MUTEX_B_OBTAIN + ); + TQSynchronizeRunner(); + TQSend( + ctx->tq_ctx, + NEW_OWNER_NEW_PRIORITY, + TQ_EVENT_HELPER_B_SYNC | TQ_EVENT_ENQUEUE + ); + TQSynchronizeRunner(); + + if ( ctx->gains_new_helping_scheduler ) { + TQSetScheduler( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + SCHEDULER_C_ID, + PRIO_LOW + ); + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + TQ_EVENT_ENQUEUE + ); + } + } else if ( ctx->gains_new_helping_scheduler ) { + TQSetScheduler( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + SCHEDULER_A_ID, + PRIO_LOW + ); + TQSend( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + TQ_EVENT_HELPER_B_SYNC | TQ_EVENT_ENQUEUE + ); + TQSynchronizeRunner(); + } + + /* + * In order to run the validation test variant also for the intend to block + * wait state, we would need at least three processors. Skip it for now. + */ + if ( ctx->use_helping_scheduler && !ctx->intend_to_block ) { + ctx->tq_ctx->busy_wait[ PREV_OWNER_MOVER ] = true; + TQSend( ctx->tq_ctx, PREV_OWNER_MOVER, TQ_EVENT_BUSY_WAIT ); + + while ( rtems_scheduler_get_processor() != 1 ) { + /* Wait */ + } + + ctx->tq_ctx->busy_wait[ PREV_OWNER_MOVER ] = false; + } +#else + TQSend( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_HELPER_B_SYNC | TQ_EVENT_ENQUEUE + ); + TQSynchronizeRunner(); +#endif + + Surrender( ctx ); + +#if defined(RTEMS_SMP) + if ( ctx->intend_to_block ) { + /* B1 */ + _SMP_barrier_Wait( &ctx->barrier, &state, 2 ); + } +#endif +} + +static void Cleanup( Context *ctx ) +{ + if ( ctx->suspended ) { + ResumeTask( ctx->tq_ctx->worker_id[ NEW_OWNER ] ); + } + + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_SURRENDER + ); + TQWaitForExecutionStop( ctx->tq_ctx, NEW_OWNER ); + +#if defined(RTEMS_SMP) + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_MUTEX_B_RELEASE + ); + + if ( ctx->gains_new_priority ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER_OLD_PRIORITY, + TQ_EVENT_MUTEX_B_RELEASE + ); + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER_NEW_PRIORITY, + TQ_EVENT_SURRENDER + ); + } + + if ( ctx->gains_new_helping_scheduler ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + TQ_EVENT_SURRENDER + ); + } +#endif + + TQMutexRelease( ctx->tq_ctx, TQ_MUTEX_A ); + TQMutexObtain( ctx->tq_ctx, TQ_MUTEX_A ); + TQMutexRelease( ctx->tq_ctx, TQ_MUTEX_A ); + + T_eq_u32( rtems_scheduler_get_processor(), 0 ); +} + +static void SetupSticky( Context *ctx ) +{ +#if defined(RTEMS_SMP) + TQSetScheduler( ctx->tq_ctx, NEW_OWNER, SCHEDULER_B_ID, PRIO_NORMAL ); + TQSetPriority( ctx->tq_ctx, PREV_OWNER_HELPER_A, PRIO_VERY_HIGH ); + TQSetScheduler( ctx->tq_ctx, + PREV_OWNER_HELPER_B, + SCHEDULER_B_ID, + PRIO_LOW + ); + TQSetPriority( ctx->tq_ctx, NEW_OWNER_NEW_HELPER, PRIO_VERY_HIGH ); + TQSetPriority( ctx->tq_ctx, PREV_OWNER, PRIO_NORMAL ); +#endif +} + +static void ActionSticky( Context *ctx ) +{ +#if defined(RTEMS_SMP) + ctx->action_performed = true; + ctx->previous_owner = ctx->tq_ctx->worker_id[ PREV_OWNER ]; + + SetSelfPriority( PRIO_LOW ); + + if ( + ctx->inherited_priorities_are_dispensible || + ctx->helping_schedules_are_dispensible + ) { + TQSend( ctx->tq_ctx, PREV_OWNER, TQ_EVENT_MUTEX_A_OBTAIN ); + + if ( ctx->inherited_priorities_are_dispensible ) { + TQSend( ctx->tq_ctx, PREV_OWNER_HELPER_A, TQ_EVENT_MUTEX_A_OBTAIN ); + } + + if ( ctx->helping_schedules_are_dispensible ) { + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + PREV_OWNER_HELPER_B, + TQ_EVENT_MUTEX_A_OBTAIN + ); + } + } + + /* + * Take only the priorities into account which are inherited from the + * priority inheritance mutex. This avoids having to deal with the ceiling + * priority. + */ + ctx->priority_before = TQGetPriority( ctx->tq_ctx, PREV_OWNER ); + + SetSelfScheduler( SCHEDULER_B_ID, PRIO_ULTRA_HIGH ); + ctx->tq_ctx->busy_wait[ PREV_OWNER ] = true; + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + PREV_OWNER, + TQ_EVENT_ENQUEUE | TQ_EVENT_BUSY_WAIT + ); + SetSelfScheduler( SCHEDULER_A_ID, PRIO_ULTRA_HIGH ); + + TQSendAndWaitForIntendToBlock( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_ENQUEUE + ); + + SetSelfScheduler( SCHEDULER_B_ID, PRIO_ULTRA_HIGH ); + + if ( ctx->gains_new_helping_scheduler ) { + TQSend( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + TQ_EVENT_ENQUEUE + ); + YieldTask( ctx->tq_ctx->worker_id[ PREV_OWNER ] ); + TQWaitForEventsReceived( ctx->tq_ctx, NEW_OWNER_NEW_HELPER ); + TQWaitForIntendToBlock( ctx->tq_ctx, NEW_OWNER_NEW_HELPER ); + YieldTask( ctx->tq_ctx->worker_id[ NEW_OWNER_NEW_HELPER ] ); + } + + if ( ctx->use_helping_scheduler ) { + SetSelfScheduler( SCHEDULER_A_ID, PRIO_ULTRA_HIGH ); + } + + if ( ctx->suspended ) { + SuspendTask( ctx->tq_ctx->worker_id[ NEW_OWNER ] ); + } + + ctx->tq_ctx->busy_wait[ PREV_OWNER ] = false; + TQSendAndWaitForExecutionStop( + ctx->tq_ctx, + PREV_OWNER, + TQ_EVENT_SCHEDULER_RECORD_START | + TQ_EVENT_SURRENDER + ); + TQSchedulerRecordStop( ctx->tq_ctx ); + T_eq_ptr( + TQGetOwner( ctx->tq_ctx ), + ctx->tq_ctx->worker_tcb[ NEW_OWNER ] + ); + ctx->priority_after = TQGetPriority( ctx->tq_ctx, PREV_OWNER ); +#endif +} + +static void CleanupSticky( Context *ctx ) +{ +#if defined(RTEMS_SMP) + SetSelfScheduler( SCHEDULER_A_ID, PRIO_ULTRA_HIGH ); + + if ( ctx->suspended ) { + ResumeTask( ctx->tq_ctx->worker_id[ NEW_OWNER ] ); + } + + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER, + TQ_EVENT_SURRENDER + ); + + if ( ctx->gains_new_helping_scheduler ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + NEW_OWNER_NEW_HELPER, + TQ_EVENT_SURRENDER + ); + } + + if ( + ctx->inherited_priorities_are_dispensible || + ctx->helping_schedules_are_dispensible + ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + PREV_OWNER, + TQ_EVENT_MUTEX_A_RELEASE + ); + + if ( ctx->inherited_priorities_are_dispensible ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + PREV_OWNER_HELPER_A, + TQ_EVENT_MUTEX_A_RELEASE + ); + } + + if ( ctx->helping_schedules_are_dispensible ) { + TQSendAndSynchronizeRunner( + ctx->tq_ctx, + PREV_OWNER_HELPER_B, + TQ_EVENT_MUTEX_A_RELEASE + ); + } + } + + T_eq_u32( rtems_scheduler_get_processor(), 0 ); +#endif +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_One: { + /* + * Where the system has exactly one schedulers. + */ + if ( rtems_scheduler_get_processor_maximum() != 1 ) { + ctx->Map.skip = true; + } + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_Two: { + /* + * Where the system has exactly two schedulers. + */ + if ( rtems_scheduler_get_processor_maximum() != 2 ) { + ctx->Map.skip = true; + } + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_More: { + /* + * Where the system has at least three schedulers. + */ + if ( rtems_scheduler_get_processor_maximum() < 3 ) { + ctx->Map.skip = true; + } + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_Vital: { + /* + * While at least one priority inherited through the thread queue for the + * previous owner is the highest priority of the previous owner. + */ + ctx->inherited_priorities_are_dispensible = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_Dispensable: { + /* + * While all priorities inherited through the thread queue for the + * previous owner are not the highest priority of the previous owner. + */ + ctx->inherited_priorities_are_dispensible = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_Vital: { + /* + * While at least one helping scheduler of the previous owner is only + * available due to a priority inherited through the thread queue. + */ + ctx->helping_schedules_are_dispensible = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_Dispensable: { + /* + * While all helping scheduler of the previous owner are not only + * available due to a priority inherited through the thread queue. + */ + ctx->helping_schedules_are_dispensible = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_Home: { + /* + * While the previous owner executes in its home scheduler. + */ + ctx->use_helping_scheduler = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_Helping: { + /* + * While the previous owner executes in a helping scheduler which is + * available due to a priority inherited through the thread queue. + */ + ctx->use_helping_scheduler = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_Vital: { + /* + * While at least one highest priority of the new owner is only available + * due to a priority inherited through the thread queue. + */ + ctx->gains_new_priority = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_Dispensable: { + /* + * While all highest priorities of the new owner are not only available + * due to a priority inherited through the thread queue. + */ + ctx->gains_new_priority = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_Vital: { + /* + * While at least one helping scheduler of the new owner is only + * available due to a priority inherited through the thread queue. + */ + ctx->gains_new_helping_scheduler = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_Dispensable: { + /* + * While all helping scheduler of the new owner are not only available + * due to a priority inherited through the thread queue. + */ + ctx->gains_new_helping_scheduler = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_Suspended state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_Yes: { + /* + * While the new owner is suspended. + */ + ctx->suspended = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_No: { + /* + * While the new owner is not suspended. + */ + ctx->suspended = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Pre_WaitState state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_Blocked: { + /* + * While the new owner is in the blocked wait state. + */ + ctx->intend_to_block = false; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_IntendToBlock: { + /* + * While the new owner is in the intend to block wait state. + */ + ctx->intend_to_block = true; + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority: { + /* + * The first thread in priority order shall be dequeued from the thread + * queue. + */ + /* Validation is done by spec:/score/tq/req/enqueue-priority */ + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock state +) +{ + size_t i; + + i = 0; + + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes: { + /* + * The dequeued thread shall be unblocked by the thread queue surrender + * operation. + */ + T_eq_ptr( GetUnblock( ctx, &i ), GetTCB( ctx, NEW_OWNER ) ); + T_eq_ptr( GetUnblock( ctx, &i ), NULL ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No: { + /* + * The dequeued thread shall not be unblocked by the thread queue + * surrender operation. + */ + T_eq_ptr( GetUnblock( ctx, &i ), NULL ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA: + break; + } +} + +static void +ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop: { + /* + * Each eligible priority of the previous owner which had the highest + * priority inherited through the thread queue shall be updated. + */ + T_eq_u32( ctx->priority_after, PRIO_NORMAL ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop: { + /* + * No eligible priority of the previous owner shall be updated. + */ + T_eq_u32( ctx->priority_after, ctx->priority_before ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority state +) +{ + rtems_id scheduler_id; + rtems_task_priority priority; + rtems_status_code sc; + + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise: { + /* + * Each eligible priority of the new owner which inherited the highest + * priority through the thread queue shall be updated. + */ + sc = rtems_task_get_priority( + ctx->tq_ctx->worker_id[ NEW_OWNER ], + SCHEDULER_A_ID, + &priority + ); + T_rsc_success( sc ); + T_eq_u32( priority, PRIO_LOW ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop: { + /* + * No highest priority of the new owner shall be changed. + */ + if ( ctx->gains_new_helping_scheduler ) { + scheduler_id = SCHEDULER_C_ID; + } else { + scheduler_id = SCHEDULER_A_ID; + } + + sc = rtems_task_get_priority( + ctx->tq_ctx->worker_id[ NEW_OWNER ], + scheduler_id, + &priority + ); + #if defined(RTEMS_SMP) + T_rsc( sc, RTEMS_NOT_DEFINED ); + #else + T_rsc_success( sc ); + T_eq_u32( priority, PRIO_HIGH ); + #endif + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper state +) +{ + rtems_task_priority priority; + rtems_status_code sc; + + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes: { + /* + * Each helping scheduler of the previous owner which was only available + * due to a priority inherited through the thread queue shall be removed + * from the previous owner. + */ + sc = rtems_task_get_priority( + ctx->previous_owner, + SCHEDULER_B_ID, + &priority + ); + T_rsc( sc, RTEMS_NOT_DEFINED ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No: { + /* + * No helping scheduler shall be removed from the previous owner. + */ + sc = rtems_task_get_priority( + ctx->previous_owner, + SCHEDULER_B_ID, + &priority + ); + #if defined(RTEMS_SMP) + T_rsc_success( sc ); + + if ( ctx->tq_ctx->enqueue_variant == TQ_ENQUEUE_STICKY ) { + T_eq_u32( priority, PRIO_LOW ); + } else { + T_eq_u32( priority, PRIO_HIGH ); + } + #else + T_rsc( sc, RTEMS_INVALID_ID ); + #endif + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper state +) +{ + rtems_id scheduler_id; + rtems_task_priority priority; + rtems_status_code sc; + + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes: { + /* + * Each helping scheduler of the new owner which is only available due to + * a priority inherited through the thread queue shall be added to the + * new owner. + */ + if ( ctx->gains_new_priority ) { + scheduler_id = SCHEDULER_C_ID; + } else { + scheduler_id = SCHEDULER_A_ID; + } + + sc = rtems_task_get_priority( + ctx->tq_ctx->worker_id[ NEW_OWNER ], + scheduler_id, + &priority + ); + T_rsc_success( sc ); + + if ( ctx->tq_ctx->enqueue_variant == TQ_ENQUEUE_STICKY ) { + T_eq_u32( priority, PRIO_VERY_HIGH ); + } else { + T_eq_u32( priority, PRIO_LOW ); + } + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No: { + /* + * No helping scheduler shall added to the new owner. + */ + if ( ctx->gains_new_priority ) { + scheduler_id = SCHEDULER_C_ID; + } else { + scheduler_id = SCHEDULER_A_ID; + } + + sc = rtems_task_get_priority( + ctx->tq_ctx->worker_id[ NEW_OWNER ], + scheduler_id, + &priority + ); + #if defined(RTEMS_SMP) + T_rsc( sc, RTEMS_NOT_DEFINED ); + #else + T_rsc_success( sc ); + T_eq_u32( priority, PRIO_HIGH ); + #endif + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Check( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended state +) +{ + switch ( state ) { + case ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes: { + /* + * The new owner shall be suspended. + */ + T_true( IsTaskSuspended( ctx->tq_ctx->worker_id[ NEW_OWNER ] ) ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No: { + /* + * The new owner shall be not suspended. + */ + T_false( IsTaskSuspended( ctx->tq_ctx->worker_id[ NEW_OWNER ] ) ); + break; + } + + case ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA: + break; + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Setup( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + ctx->request.arg = ctx; + TQReset( ctx->tq_ctx ); + + if ( ctx->tq_ctx->enqueue_variant == TQ_ENQUEUE_STICKY ) { + SetupSticky( ctx ); + } else { + Setup( ctx ); + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Setup_Wrap( void *arg ) +{ + ScoreTqReqSurrenderPriorityInherit_Context *ctx; + + ctx = arg; + ctx->Map.in_action_loop = false; + ScoreTqReqSurrenderPriorityInherit_Setup( ctx ); +} + +static void ScoreTqReqSurrenderPriorityInherit_Teardown( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + SetSelfScheduler( SCHEDULER_A_ID, PRIO_NORMAL ); +} + +static void ScoreTqReqSurrenderPriorityInherit_Teardown_Wrap( void *arg ) +{ + ScoreTqReqSurrenderPriorityInherit_Context *ctx; + + ctx = arg; + ctx->Map.in_action_loop = false; + ScoreTqReqSurrenderPriorityInherit_Teardown( ctx ); +} + +static void ScoreTqReqSurrenderPriorityInherit_Prepare( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + ctx->action_performed = false; + ctx->inherited_priorities_are_dispensible = true; + ctx->helping_schedules_are_dispensible = true; + ctx->use_helping_scheduler = false; + ctx->gains_new_priority = false; + ctx->gains_new_helping_scheduler = false; + ctx->intend_to_block = false; +} + +static void ScoreTqReqSurrenderPriorityInherit_Action( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + if ( ctx->tq_ctx->enqueue_variant == TQ_ENQUEUE_STICKY ) { + ActionSticky( ctx ); + } else { + Action( ctx ); + } +} + +static void ScoreTqReqSurrenderPriorityInherit_Cleanup( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + if ( ctx->action_performed ) { + if ( ctx->tq_ctx->enqueue_variant == TQ_ENQUEUE_STICKY ) { + CleanupSticky( ctx ); + } else { + Cleanup( ctx ); + } + } +} + +static const ScoreTqReqSurrenderPriorityInherit_Entry +ScoreTqReqSurrenderPriorityInherit_Entries[] = { + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#endif + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Drop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA }, +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Yes }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No }, +#if !defined(RTEMS_SMP) + { 1, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_NA, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_NA, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_NA, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_NA } +#else + { 0, 0, 0, 0, 0, 0, 0, 0, 0, + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Priority, + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_No, + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Nop, + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Raise, + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_No, + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Yes, + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_No } +#endif +}; + +static const uint8_t +ScoreTqReqSurrenderPriorityInherit_Map[] = { + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 4, 5, 6, 7, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 8, 9, 10, 11, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, + 3, 2, 3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2, 3, 2, 3, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2, 3, 2, 3, 24, 25, 26, 27, 28, 29, + 30, 31, 4, 5, 6, 7, 2, 3, 2, 3, 24, 25, 26, 27, 28, 29, 30, 31, 4, 5, 6, 7, + 2, 3, 2, 3, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 2, 3, 2, 3, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 2, 3, 2, 3, 44, 45, 46, 47, 48, + 49, 50, 51, 8, 9, 10, 11, 2, 3, 2, 3, 44, 45, 46, 47, 48, 49, 50, 51, 8, 9, + 10, 11, 52, 53, 54, 55, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 52, + 53, 54, 55, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 56, 57, 58, 59, + 24, 25, 26, 27, 28, 29, 30, 31, 4, 5, 6, 7, 56, 57, 58, 59, 24, 25, 26, 27, + 28, 29, 30, 31, 4, 5, 6, 7, 60, 61, 62, 63, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 60, 61, 62, 63, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 64, 65, 66, 67, 44, 45, 46, 47, 48, 49, 50, 51, 8, 9, 10, 11, 64, 65, 66, + 67, 44, 45, 46, 47, 48, 49, 50, 51, 8, 9, 10, 11 +}; + +static size_t ScoreTqReqSurrenderPriorityInherit_Scope( + void *arg, + char *buf, + size_t n +) +{ + ScoreTqReqSurrenderPriorityInherit_Context *ctx; + + ctx = arg; + + if ( ctx->Map.in_action_loop ) { + return T_get_scope( + ScoreTqReqSurrenderPriorityInherit_PreDesc, + buf, + n, + ctx->Map.pcs + ); + } + + return 0; +} + +static T_fixture ScoreTqReqSurrenderPriorityInherit_Fixture = { + .setup = ScoreTqReqSurrenderPriorityInherit_Setup_Wrap, + .stop = NULL, + .teardown = ScoreTqReqSurrenderPriorityInherit_Teardown_Wrap, + .scope = ScoreTqReqSurrenderPriorityInherit_Scope, + .initial_context = &ScoreTqReqSurrenderPriorityInherit_Instance +}; + +static const uint8_t ScoreTqReqSurrenderPriorityInherit_Weights[] = { + 128, 64, 32, 16, 8, 4, 2, 1 +}; + +static void ScoreTqReqSurrenderPriorityInherit_Skip( + ScoreTqReqSurrenderPriorityInherit_Context *ctx, + size_t index +) +{ + switch ( index + 1 ) { + case 1: + ctx->Map.pcs[ 1 ] = ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_NA - 1; + /* Fall through */ + case 2: + ctx->Map.pcs[ 2 ] = ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_NA - 1; + /* Fall through */ + case 3: + ctx->Map.pcs[ 3 ] = ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_NA - 1; + /* Fall through */ + case 4: + ctx->Map.pcs[ 4 ] = ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_NA - 1; + /* Fall through */ + case 5: + ctx->Map.pcs[ 5 ] = ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_NA - 1; + /* Fall through */ + case 6: + ctx->Map.pcs[ 6 ] = ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_NA - 1; + /* Fall through */ + case 7: + ctx->Map.pcs[ 7 ] = ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_NA - 1; + break; + } +} + +static inline ScoreTqReqSurrenderPriorityInherit_Entry +ScoreTqReqSurrenderPriorityInherit_PopEntry( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + size_t index; + + if ( ctx->Map.skip ) { + size_t i; + + ctx->Map.skip = false; + index = 0; + + for ( i = 0; i < 8; ++i ) { + index += ScoreTqReqSurrenderPriorityInherit_Weights[ i ] * ctx->Map.pcs[ i ]; + } + } else { + index = ctx->Map.index; + } + + ctx->Map.index = index + 1; + + return ScoreTqReqSurrenderPriorityInherit_Entries[ + ScoreTqReqSurrenderPriorityInherit_Map[ index ] + ]; +} + +static void ScoreTqReqSurrenderPriorityInherit_TestVariant( + ScoreTqReqSurrenderPriorityInherit_Context *ctx +) +{ + ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_Prepare( + ctx, + ctx->Map.pcs[ 0 ] + ); + + if ( ctx->Map.skip ) { + ScoreTqReqSurrenderPriorityInherit_Skip( ctx, 0 ); + return; + } + + ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_Prepare( + ctx, + ctx->Map.pcs[ 1 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_Prepare( + ctx, + ctx->Map.pcs[ 2 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_Prepare( + ctx, + ctx->Map.pcs[ 3 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_Prepare( + ctx, + ctx->Map.pcs[ 4 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_Prepare( + ctx, + ctx->Map.pcs[ 5 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_Prepare( + ctx, + ctx->Map.pcs[ 6 ] + ); + ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_Prepare( + ctx, + ctx->Map.pcs[ 7 ] + ); + ScoreTqReqSurrenderPriorityInherit_Action( ctx ); + ScoreTqReqSurrenderPriorityInherit_Post_Dequeue_Check( + ctx, + ctx->Map.entry.Post_Dequeue + ); + ScoreTqReqSurrenderPriorityInherit_Post_Unblock_Check( + ctx, + ctx->Map.entry.Post_Unblock + ); + ScoreTqReqSurrenderPriorityInherit_Post_PreviousOwnerPriority_Check( + ctx, + ctx->Map.entry.Post_PreviousOwnerPriority + ); + ScoreTqReqSurrenderPriorityInherit_Post_NewPriority_Check( + ctx, + ctx->Map.entry.Post_NewPriority + ); + ScoreTqReqSurrenderPriorityInherit_Post_RemoveHelper_Check( + ctx, + ctx->Map.entry.Post_RemoveHelper + ); + ScoreTqReqSurrenderPriorityInherit_Post_AddHelper_Check( + ctx, + ctx->Map.entry.Post_AddHelper + ); + ScoreTqReqSurrenderPriorityInherit_Post_Suspended_Check( + ctx, + ctx->Map.entry.Post_Suspended + ); +} + +static T_fixture_node ScoreTqReqSurrenderPriorityInherit_Node; + +static T_remark ScoreTqReqSurrenderPriorityInherit_Remark = { + .next = NULL, + .remark = "ScoreTqReqSurrenderPriorityInherit" +}; + +void ScoreTqReqSurrenderPriorityInherit_Run( TQContext *tq_ctx ) +{ + ScoreTqReqSurrenderPriorityInherit_Context *ctx; + + ctx = &ScoreTqReqSurrenderPriorityInherit_Instance; + ctx->tq_ctx = tq_ctx; + + ctx = T_push_fixture( + &ScoreTqReqSurrenderPriorityInherit_Node, + &ScoreTqReqSurrenderPriorityInherit_Fixture + ); + ctx->Map.in_action_loop = true; + ctx->Map.index = 0; + ctx->Map.skip = false; + + for ( + ctx->Map.pcs[ 0 ] = ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_One; + ctx->Map.pcs[ 0 ] < ScoreTqReqSurrenderPriorityInherit_Pre_SchedulerCount_NA; + ++ctx->Map.pcs[ 0 ] + ) { + for ( + ctx->Map.pcs[ 1 ] = ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_Vital; + ctx->Map.pcs[ 1 ] < ScoreTqReqSurrenderPriorityInherit_Pre_InheritedPriority_NA; + ++ctx->Map.pcs[ 1 ] + ) { + for ( + ctx->Map.pcs[ 2 ] = ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_Vital; + ctx->Map.pcs[ 2 ] < ScoreTqReqSurrenderPriorityInherit_Pre_PreviousHelping_NA; + ++ctx->Map.pcs[ 2 ] + ) { + for ( + ctx->Map.pcs[ 3 ] = ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_Home; + ctx->Map.pcs[ 3 ] < ScoreTqReqSurrenderPriorityInherit_Pre_UsedScheduler_NA; + ++ctx->Map.pcs[ 3 ] + ) { + for ( + ctx->Map.pcs[ 4 ] = ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_Vital; + ctx->Map.pcs[ 4 ] < ScoreTqReqSurrenderPriorityInherit_Pre_NewPriority_NA; + ++ctx->Map.pcs[ 4 ] + ) { + for ( + ctx->Map.pcs[ 5 ] = ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_Vital; + ctx->Map.pcs[ 5 ] < ScoreTqReqSurrenderPriorityInherit_Pre_NewHelping_NA; + ++ctx->Map.pcs[ 5 ] + ) { + for ( + ctx->Map.pcs[ 6 ] = ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_Yes; + ctx->Map.pcs[ 6 ] < ScoreTqReqSurrenderPriorityInherit_Pre_Suspended_NA; + ++ctx->Map.pcs[ 6 ] + ) { + for ( + ctx->Map.pcs[ 7 ] = ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_Blocked; + ctx->Map.pcs[ 7 ] < ScoreTqReqSurrenderPriorityInherit_Pre_WaitState_NA; + ++ctx->Map.pcs[ 7 ] + ) { + ctx->Map.entry = ScoreTqReqSurrenderPriorityInherit_PopEntry( + ctx + ); + + if ( ctx->Map.entry.Skip ) { + continue; + } + + ScoreTqReqSurrenderPriorityInherit_Prepare( ctx ); + ScoreTqReqSurrenderPriorityInherit_TestVariant( ctx ); + ScoreTqReqSurrenderPriorityInherit_Cleanup( ctx ); + } + } + } + } + } + } + } + } + + T_add_remark( &ScoreTqReqSurrenderPriorityInherit_Remark ); + T_pop_fixture(); +} + +/** @} */ |