File indexing completed on 2025-05-11 08:24:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 #ifdef HAVE_CONFIG_H
0052 #include "config.h"
0053 #endif
0054
0055 #include <rtems/score/smpimpl.h>
0056 #include <rtems/score/threadimpl.h>
0057
0058 #include "tr-tq-timeout-priority-inherit.h"
0059 #include "tx-support.h"
0060
0061 #include <rtems/test.h>
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072 typedef struct {
0073 uint32_t Skip : 1;
0074 uint32_t Pre_HomeScheduler_NA : 1;
0075 uint32_t Pre_EligibleScheduler_NA : 1;
0076 uint32_t Pre_Queue_NA : 1;
0077 uint32_t Pre_OwnerPriority_NA : 1;
0078 uint32_t Pre_OwnerState_NA : 1;
0079 uint32_t Pre_OwnerQueue_NA : 1;
0080 uint32_t Pre_OwnerOwnerPriority_NA : 1;
0081 uint32_t Pre_WaitState_NA : 1;
0082 uint32_t Post_Status : 2;
0083 uint32_t Post_Unblock : 2;
0084 uint32_t Post_OwnerPriority : 2;
0085 uint32_t Post_OwnerOwnerPriority : 2;
0086 } ScoreTqReqTimeoutPriorityInherit_Entry;
0087
0088
0089
0090
0091
0092 typedef struct {
0093
0094
0095
0096 CallWithinISRRequest request;
0097
0098
0099
0100
0101 rtems_id scheduler_id;
0102
0103
0104
0105
0106
0107 bool other_scheduler;
0108
0109
0110
0111
0112 TQNodeKind queue_node;
0113
0114
0115
0116
0117 TQNodeKind owner_node;
0118
0119
0120
0121
0122
0123 rtems_event_set owner_obtain;
0124
0125
0126
0127
0128
0129 rtems_event_set owner_release;
0130
0131
0132
0133
0134 TQNodeKind owner_queue_node;
0135
0136
0137
0138
0139
0140 TQNodeKind owner_owner_node;
0141
0142
0143
0144
0145 TQWaitState wait_state;
0146
0147
0148
0149
0150 rtems_task_priority queue_priority;
0151
0152
0153
0154
0155 rtems_task_priority owner_priority;
0156
0157
0158
0159
0160
0161 rtems_task_priority owner_priority_after;
0162
0163
0164
0165
0166
0167 rtems_task_priority owner_queue_priority;
0168
0169
0170
0171
0172
0173 rtems_task_priority owner_owner_priority;
0174
0175
0176
0177
0178
0179 rtems_task_priority owner_owner_priority_after;
0180
0181
0182
0183
0184
0185 bool queue_helper_surrender;
0186
0187
0188
0189
0190
0191 bool owner_helper_release;
0192
0193
0194
0195
0196
0197 bool owner_queue_helper_release;
0198
0199
0200
0201
0202
0203 bool owner_owner_helper_release;
0204
0205
0206
0207
0208
0209 TQContext *tq_ctx;
0210
0211 struct {
0212
0213
0214
0215
0216 size_t pci[ 8 ];
0217
0218
0219
0220
0221 size_t pcs[ 8 ];
0222
0223
0224
0225
0226 bool in_action_loop;
0227
0228
0229
0230
0231 size_t index;
0232
0233
0234
0235
0236 ScoreTqReqTimeoutPriorityInherit_Entry entry;
0237
0238
0239
0240
0241
0242 bool skip;
0243 } Map;
0244 } ScoreTqReqTimeoutPriorityInherit_Context;
0245
0246 static ScoreTqReqTimeoutPriorityInherit_Context
0247 ScoreTqReqTimeoutPriorityInherit_Instance;
0248
0249 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_HomeScheduler[] = {
0250 "Home",
0251 "Helping",
0252 "NA"
0253 };
0254
0255 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_EligibleScheduler[] = {
0256 "One",
0257 "More",
0258 "NA"
0259 };
0260
0261 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_Queue[] = {
0262 "Only",
0263 "Vital",
0264 "Dispensable",
0265 "NA"
0266 };
0267
0268 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerPriority[] = {
0269 "Only",
0270 "Vital",
0271 "Dispensable",
0272 "NA"
0273 };
0274
0275 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerState[] = {
0276 "NotEnqueued",
0277 "FIFO",
0278 "Priority",
0279 "PriorityInherit",
0280 "NA"
0281 };
0282
0283 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerQueue[] = {
0284 "Only",
0285 "Vital",
0286 "Dispensable",
0287 "NA"
0288 };
0289
0290 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerOwnerPriority[] = {
0291 "Only",
0292 "Vital",
0293 "Dispensable",
0294 "NA"
0295 };
0296
0297 static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_WaitState[] = {
0298 "Blocked",
0299 "IntendToBlock",
0300 "ReadyAgain",
0301 "NA"
0302 };
0303
0304 static const char * const * const ScoreTqReqTimeoutPriorityInherit_PreDesc[] = {
0305 ScoreTqReqTimeoutPriorityInherit_PreDesc_HomeScheduler,
0306 ScoreTqReqTimeoutPriorityInherit_PreDesc_EligibleScheduler,
0307 ScoreTqReqTimeoutPriorityInherit_PreDesc_Queue,
0308 ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerPriority,
0309 ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerState,
0310 ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerQueue,
0311 ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerOwnerPriority,
0312 ScoreTqReqTimeoutPriorityInherit_PreDesc_WaitState,
0313 NULL
0314 };
0315
0316 typedef ScoreTqReqTimeoutPriorityInherit_Context Context;
0317
0318 #define THREAD TQ_BLOCKER_A
0319
0320 #define THREAD_HELPER_A TQ_HELPER_B
0321
0322 #define THREAD_HELPER_B TQ_HELPER_C
0323
0324 #define QUEUE_HELPER TQ_BLOCKER_B
0325
0326 #define OWNER TQ_BLOCKER_C
0327
0328 #define OWNER_HELPER TQ_BLOCKER_D
0329
0330 #define OWNER_QUEUE_HELPER TQ_BLOCKER_E
0331
0332 #define OWNER_OWNER TQ_WORKER_F
0333
0334 #define OWNER_OWNER_HELPER TQ_HELPER_A
0335
0336 static bool GetUnblock( const Context *ctx, size_t *index )
0337 {
0338 while ( true ) {
0339 const T_scheduler_event *event;
0340
0341 event = TQGetNextUnblock( ctx->tq_ctx, index );
0342
0343 if ( event == &T_scheduler_event_null ) {
0344 return false;
0345 }
0346
0347 if ( event->thread == ctx->tq_ctx->worker_tcb[ THREAD ] ) {
0348 return true;
0349 }
0350 }
0351 }
0352
0353 static void Tick( void *arg )
0354 {
0355 Context *ctx;
0356
0357 ctx = arg;
0358 TQSchedulerRecordStart( ctx->tq_ctx );
0359 FinalClockTick();
0360 TQSchedulerRecordStop( ctx->tq_ctx );
0361 }
0362
0363 static void SchedulerBlock(
0364 void *arg,
0365 const T_scheduler_event *event,
0366 T_scheduler_when when
0367 )
0368 {
0369 Context *ctx;
0370
0371 ctx = arg;
0372
0373 if (
0374 when == T_SCHEDULER_BEFORE &&
0375 event->operation == T_SCHEDULER_BLOCK &&
0376 event->thread == ctx->tq_ctx->worker_tcb[ THREAD ]
0377 ) {
0378 T_scheduler_set_event_handler( NULL, NULL );
0379 ctx->request.handler = Tick;
0380 CallWithinISRSubmit( &ctx->request );
0381 }
0382 }
0383
0384 static void ThreadTimeout( void *arg )
0385 {
0386 Context *ctx;
0387
0388 ctx = arg;
0389 TQSchedulerRecordStart( ctx->tq_ctx );
0390 _Thread_Timeout(
0391 &ctx->tq_ctx->worker_tcb[ THREAD ]->Timer.Watchdog
0392 );
0393 TQSchedulerRecordStop( ctx->tq_ctx );
0394 }
0395
0396 static void SchedulerUnblock(
0397 void *arg,
0398 const T_scheduler_event *event,
0399 T_scheduler_when when
0400 )
0401 {
0402 Context *ctx;
0403
0404 ctx = arg;
0405
0406 if (
0407 when == T_SCHEDULER_BEFORE &&
0408 event->operation == T_SCHEDULER_UNBLOCK &&
0409 event->thread == ctx->tq_ctx->worker_tcb[ THREAD ]
0410 ) {
0411 T_scheduler_set_event_handler( NULL, NULL );
0412
0413 if ( ctx->scheduler_id == SCHEDULER_B_ID ) {
0414 #if defined(RTEMS_SMP)
0415 _SMP_Unicast_action( 1, ThreadTimeout, ctx );
0416 #else
0417 T_unreachable();
0418 #endif
0419 } else {
0420 ctx->request.handler = ThreadTimeout;
0421 CallWithinISRSubmit( &ctx->request );
0422 }
0423 }
0424 }
0425
0426 static void GetPriorities( Context *ctx )
0427 {
0428 ctx->owner_priority_after = GetPriorityByScheduler(
0429 ctx->tq_ctx->worker_id[ OWNER ],
0430 ctx->scheduler_id
0431 );
0432 ctx->owner_owner_priority_after = GetPriorityByScheduler(
0433 ctx->tq_ctx->worker_id[ OWNER_OWNER ],
0434 ctx->scheduler_id
0435 );
0436 }
0437
0438 static void PrepareThread( const Context *ctx )
0439 {
0440 if ( ctx->other_scheduler ) {
0441 rtems_id other_scheduler_id;
0442
0443 if ( ctx->scheduler_id == SCHEDULER_A_ID ) {
0444 other_scheduler_id = SCHEDULER_B_ID;
0445 } else {
0446 other_scheduler_id = SCHEDULER_B_ID;
0447 }
0448
0449 TQSendAndWaitForExecutionStop(
0450 ctx->tq_ctx,
0451 THREAD,
0452 TQ_EVENT_MUTEX_D_OBTAIN
0453 );
0454
0455 TQSetScheduler(
0456 ctx->tq_ctx,
0457 THREAD_HELPER_A,
0458 other_scheduler_id,
0459 PRIO_NEARLY_IDLE - 1
0460 );
0461 TQSendAndWaitForExecutionStop(
0462 ctx->tq_ctx,
0463 THREAD_HELPER_A,
0464 TQ_EVENT_MUTEX_D_OBTAIN
0465 );
0466
0467 if ( rtems_scheduler_get_processor_maximum() >= 3 ) {
0468 TQSetScheduler(
0469 ctx->tq_ctx,
0470 THREAD_HELPER_B,
0471 SCHEDULER_C_ID,
0472 PRIO_NORMAL
0473 );
0474 TQSendAndWaitForExecutionStop(
0475 ctx->tq_ctx,
0476 THREAD_HELPER_B,
0477 TQ_EVENT_MUTEX_D_OBTAIN
0478 );
0479 }
0480 }
0481 }
0482
0483 static rtems_task_priority PrepareQueue(
0484 Context *ctx,
0485 rtems_task_priority priority
0486 )
0487 {
0488 switch ( ctx->queue_node ) {
0489 case TQ_NODE_ONLY:
0490 ctx->queue_helper_surrender = false;
0491 break;
0492 case TQ_NODE_VITAL:
0493 ctx->queue_helper_surrender = true;
0494 TQSetScheduler(
0495 ctx->tq_ctx,
0496 QUEUE_HELPER,
0497 ctx->scheduler_id,
0498 priority + 1
0499 );
0500 TQSendAndWaitForExecutionStop(
0501 ctx->tq_ctx,
0502 QUEUE_HELPER,
0503 TQ_EVENT_ENQUEUE
0504 );
0505 break;
0506 case TQ_NODE_DISPENSABLE:
0507 ctx->queue_helper_surrender = true;
0508 --priority;
0509 TQSetScheduler(
0510 ctx->tq_ctx,
0511 QUEUE_HELPER,
0512 ctx->scheduler_id,
0513 priority
0514 );
0515 TQSendAndWaitForExecutionStop(
0516 ctx->tq_ctx,
0517 QUEUE_HELPER,
0518 TQ_EVENT_ENQUEUE
0519 );
0520 break;
0521 }
0522
0523 ctx->queue_priority = priority;
0524
0525 return priority;
0526 }
0527
0528 static rtems_task_priority PrepareOwner(
0529 Context *ctx,
0530 rtems_task_priority priority
0531 )
0532 {
0533 switch ( ctx->owner_node ) {
0534 case TQ_NODE_ONLY:
0535 ctx->owner_helper_release = false;
0536 TQSetPriority( ctx->tq_ctx, OWNER, PRIO_FLEXIBLE );
0537 break;
0538 case TQ_NODE_VITAL:
0539 if ( ctx->scheduler_id == SCHEDULER_A_ID ) {
0540 ctx->owner_helper_release = false;
0541 TQSetPriority( ctx->tq_ctx, OWNER, priority + 1 );
0542 } else {
0543 ctx->owner_helper_release = true;
0544 TQSetPriority( ctx->tq_ctx, OWNER, PRIO_FLEXIBLE );
0545 TQSetScheduler(
0546 ctx->tq_ctx,
0547 OWNER_HELPER,
0548 ctx->scheduler_id,
0549 priority + 1
0550 );
0551 TQSendAndWaitForExecutionStop(
0552 ctx->tq_ctx,
0553 OWNER_HELPER,
0554 TQ_EVENT_MUTEX_A_OBTAIN
0555 );
0556 }
0557 break;
0558 case TQ_NODE_DISPENSABLE:
0559 --priority;
0560
0561 if ( ctx->scheduler_id == SCHEDULER_A_ID ) {
0562 ctx->owner_helper_release = false;
0563 TQSetPriority( ctx->tq_ctx, OWNER, priority );
0564 } else {
0565 ctx->owner_helper_release = true;
0566 TQSetPriority( ctx->tq_ctx, OWNER, PRIO_FLEXIBLE );
0567 TQSetScheduler(
0568 ctx->tq_ctx,
0569 OWNER_HELPER,
0570 ctx->scheduler_id,
0571 priority
0572 );
0573 TQSendAndWaitForExecutionStop(
0574 ctx->tq_ctx,
0575 OWNER_HELPER,
0576 TQ_EVENT_MUTEX_A_OBTAIN
0577 );
0578 }
0579 break;
0580 }
0581
0582 ctx->owner_priority = priority;
0583
0584 return priority;
0585 }
0586
0587 static rtems_task_priority PrepareOwnerQueue(
0588 Context *ctx,
0589 rtems_task_priority priority
0590 )
0591 {
0592 if ( ctx->owner_obtain != 0 ) {
0593 switch ( ctx->owner_queue_node ) {
0594 case TQ_NODE_ONLY:
0595 ctx->owner_queue_helper_release = false;
0596 break;
0597 case TQ_NODE_VITAL:
0598 ctx->owner_queue_helper_release = true;
0599 TQSetScheduler(
0600 ctx->tq_ctx,
0601 OWNER_QUEUE_HELPER,
0602 ctx->scheduler_id,
0603 priority + 1
0604 );
0605 TQSendAndWaitForExecutionStop(
0606 ctx->tq_ctx,
0607 OWNER_QUEUE_HELPER,
0608 ctx->owner_obtain
0609 );
0610 break;
0611 case TQ_NODE_DISPENSABLE:
0612 ctx->owner_queue_helper_release = true;
0613 --priority;
0614 TQSetScheduler(
0615 ctx->tq_ctx,
0616 OWNER_QUEUE_HELPER,
0617 ctx->scheduler_id,
0618 priority
0619 );
0620 TQSendAndWaitForExecutionStop(
0621 ctx->tq_ctx,
0622 OWNER_QUEUE_HELPER,
0623 ctx->owner_obtain
0624 );
0625 break;
0626 }
0627
0628 ctx->owner_queue_priority = priority;
0629 } else {
0630 ctx->owner_queue_helper_release = false;
0631 ctx->owner_queue_priority = PRIO_INVALID;
0632 }
0633
0634 return priority;
0635 }
0636
0637 static void PrepareOwnerOwner( Context *ctx, rtems_task_priority priority )
0638 {
0639 if ( ctx->owner_obtain != 0 ) {
0640 switch ( ctx->owner_owner_node ) {
0641 case TQ_NODE_ONLY:
0642 ctx->owner_owner_helper_release = false;
0643 TQSetPriority( ctx->tq_ctx, OWNER_OWNER, PRIO_FLEXIBLE );
0644 break;
0645 case TQ_NODE_VITAL:
0646 if ( ctx->scheduler_id == SCHEDULER_A_ID ) {
0647 ctx->owner_owner_helper_release = false;
0648 TQSetPriority( ctx->tq_ctx, OWNER_OWNER, priority + 1 );
0649 } else {
0650 ctx->owner_owner_helper_release = true;
0651 TQSetPriority( ctx->tq_ctx, OWNER_OWNER, PRIO_FLEXIBLE );
0652 TQSetScheduler(
0653 ctx->tq_ctx,
0654 OWNER_OWNER_HELPER,
0655 ctx->scheduler_id,
0656 priority + 1
0657 );
0658 TQSendAndWaitForExecutionStop(
0659 ctx->tq_ctx,
0660 OWNER_OWNER_HELPER,
0661 TQ_EVENT_MUTEX_B_OBTAIN
0662 );
0663 }
0664 break;
0665 case TQ_NODE_DISPENSABLE:
0666 --priority;
0667
0668 if ( ctx->scheduler_id == SCHEDULER_A_ID ) {
0669 ctx->owner_owner_helper_release = false;
0670 TQSetPriority( ctx->tq_ctx, OWNER_OWNER, priority );
0671 } else {
0672 ctx->owner_owner_helper_release = true;
0673 TQSetPriority( ctx->tq_ctx, OWNER_OWNER, PRIO_FLEXIBLE );
0674 TQSetScheduler(
0675 ctx->tq_ctx,
0676 OWNER_OWNER_HELPER,
0677 ctx->scheduler_id,
0678 priority
0679 );
0680 TQSendAndWaitForExecutionStop(
0681 ctx->tq_ctx,
0682 OWNER_OWNER_HELPER,
0683 TQ_EVENT_MUTEX_B_OBTAIN
0684 );
0685 }
0686 break;
0687 }
0688
0689 ctx->owner_owner_priority = priority;
0690 } else {
0691 ctx->owner_owner_helper_release = false;
0692 ctx->owner_owner_priority = PRIO_INVALID;
0693 }
0694 }
0695
0696 static void ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Prepare(
0697 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0698 ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler state
0699 )
0700 {
0701 switch ( state ) {
0702 case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Home: {
0703
0704
0705
0706
0707 ctx->scheduler_id = SCHEDULER_A_ID;
0708 break;
0709 }
0710
0711 case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Helping: {
0712
0713
0714
0715
0716 ctx->scheduler_id = SCHEDULER_B_ID;
0717 break;
0718 }
0719
0720 case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_NA:
0721 break;
0722 }
0723 }
0724
0725 static void ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_Prepare(
0726 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0727 ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler state
0728 )
0729 {
0730 switch ( state ) {
0731 case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_One: {
0732
0733
0734
0735 ctx->other_scheduler = false;
0736 break;
0737 }
0738
0739 case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_More: {
0740
0741
0742
0743 ctx->other_scheduler = true;
0744 break;
0745 }
0746
0747 case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_NA:
0748 break;
0749 }
0750 }
0751
0752 static void ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Prepare(
0753 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0754 ScoreTqReqTimeoutPriorityInherit_Pre_Queue state
0755 )
0756 {
0757 switch ( state ) {
0758 case ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Only: {
0759
0760
0761
0762
0763 ctx->queue_node = TQ_NODE_ONLY;
0764 break;
0765 }
0766
0767 case ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Vital: {
0768
0769
0770
0771
0772
0773
0774 ctx->queue_node = TQ_NODE_VITAL;
0775 break;
0776 }
0777
0778 case ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Dispensable: {
0779
0780
0781
0782
0783
0784
0785 ctx->queue_node = TQ_NODE_DISPENSABLE;
0786 break;
0787 }
0788
0789 case ScoreTqReqTimeoutPriorityInherit_Pre_Queue_NA:
0790 break;
0791 }
0792 }
0793
0794 static void ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Prepare(
0795 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0796 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority state
0797 )
0798 {
0799 switch ( state ) {
0800 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Only: {
0801
0802
0803
0804
0805 ctx->owner_node = TQ_NODE_ONLY;
0806 break;
0807 }
0808
0809 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Vital: {
0810
0811
0812
0813
0814
0815
0816 ctx->owner_node = TQ_NODE_VITAL;
0817 break;
0818 }
0819
0820 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Dispensable: {
0821
0822
0823
0824
0825
0826
0827 ctx->owner_node = TQ_NODE_DISPENSABLE;
0828 break;
0829 }
0830
0831 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_NA:
0832 break;
0833 }
0834 }
0835
0836 static void ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_Prepare(
0837 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0838 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState state
0839 )
0840 {
0841 switch ( state ) {
0842 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_NotEnqueued: {
0843
0844
0845
0846 ctx->owner_obtain = 0;
0847 ctx->owner_release = 0;
0848 break;
0849 }
0850
0851 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_FIFO: {
0852
0853
0854
0855
0856 ctx->owner_obtain = TQ_EVENT_MUTEX_FIFO_OBTAIN;
0857 ctx->owner_release = TQ_EVENT_MUTEX_FIFO_RELEASE;
0858 break;
0859 }
0860
0861 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_Priority: {
0862
0863
0864
0865
0866 ctx->owner_obtain = TQ_EVENT_MUTEX_NO_PROTOCOL_OBTAIN;
0867 ctx->owner_release = TQ_EVENT_MUTEX_NO_PROTOCOL_RELEASE;
0868 break;
0869 }
0870
0871 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_PriorityInherit: {
0872
0873
0874
0875
0876 ctx->owner_obtain = TQ_EVENT_MUTEX_C_OBTAIN;
0877 ctx->owner_release = TQ_EVENT_MUTEX_C_RELEASE;
0878 break;
0879 }
0880
0881 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_NA:
0882 break;
0883 }
0884 }
0885
0886 static void ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Prepare(
0887 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0888 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue state
0889 )
0890 {
0891 switch ( state ) {
0892 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Only: {
0893
0894
0895
0896
0897
0898 ctx->owner_queue_node = TQ_NODE_ONLY;
0899 break;
0900 }
0901
0902 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Vital: {
0903
0904
0905
0906
0907
0908
0909 ctx->owner_queue_node = TQ_NODE_VITAL;
0910 break;
0911 }
0912
0913 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Dispensable: {
0914
0915
0916
0917
0918
0919
0920 ctx->owner_queue_node = TQ_NODE_DISPENSABLE;
0921 break;
0922 }
0923
0924 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_NA:
0925 break;
0926 }
0927 }
0928
0929 static void ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Prepare(
0930 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0931 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority state
0932 )
0933 {
0934 switch ( state ) {
0935 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Only: {
0936
0937
0938
0939
0940
0941
0942 ctx->owner_owner_node = TQ_NODE_ONLY;
0943 break;
0944 }
0945
0946 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Vital: {
0947
0948
0949
0950
0951
0952
0953
0954
0955 ctx->owner_owner_node = TQ_NODE_VITAL;
0956 break;
0957 }
0958
0959 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Dispensable: {
0960
0961
0962
0963
0964
0965
0966
0967
0968 ctx->owner_owner_node = TQ_NODE_DISPENSABLE;
0969 break;
0970 }
0971
0972 case ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_NA:
0973 break;
0974 }
0975 }
0976
0977 static void ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_Prepare(
0978 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
0979 ScoreTqReqTimeoutPriorityInherit_Pre_WaitState state
0980 )
0981 {
0982 switch ( state ) {
0983 case ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_Blocked: {
0984
0985
0986
0987 ctx->wait_state = TQ_WAIT_STATE_BLOCKED;
0988 break;
0989 }
0990
0991 case ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_IntendToBlock: {
0992
0993
0994
0995 ctx->wait_state = TQ_WAIT_STATE_INTEND_TO_BLOCK;
0996 break;
0997 }
0998
0999 case ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_ReadyAgain: {
1000
1001
1002
1003 ctx->wait_state = TQ_WAIT_STATE_READY_AGAIN;
1004 break;
1005 }
1006
1007 case ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_NA:
1008 break;
1009 }
1010 }
1011
1012 static void ScoreTqReqTimeoutPriorityInherit_Post_Status_Check(
1013 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
1014 ScoreTqReqTimeoutPriorityInherit_Post_Status state
1015 )
1016 {
1017 switch ( state ) {
1018 case ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok: {
1019
1020
1021
1022
1023 T_eq_int(
1024 ctx->tq_ctx->status[ THREAD ],
1025 TQConvertStatus( ctx->tq_ctx, STATUS_SUCCESSFUL )
1026 );
1027 break;
1028 }
1029
1030 case ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout: {
1031
1032
1033
1034
1035 T_eq_int(
1036 ctx->tq_ctx->status[ THREAD ],
1037 TQConvertStatus( ctx->tq_ctx, STATUS_TIMEOUT )
1038 );
1039 break;
1040 }
1041
1042 case ScoreTqReqTimeoutPriorityInherit_Post_Status_NA:
1043 break;
1044 }
1045 }
1046
1047 static void ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Check(
1048 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
1049 ScoreTqReqTimeoutPriorityInherit_Post_Unblock state
1050 )
1051 {
1052 size_t i;
1053
1054 i = 0;
1055
1056 switch ( state ) {
1057 case ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes: {
1058
1059
1060
1061 T_true( GetUnblock( ctx, &i ) );
1062 T_false( GetUnblock( ctx, &i ) );
1063 break;
1064 }
1065
1066 case ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No: {
1067
1068
1069
1070 T_false( GetUnblock( ctx, &i ) );
1071 break;
1072 }
1073
1074 case ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA:
1075 break;
1076 }
1077 }
1078
1079 static void ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Check(
1080 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
1081 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority state
1082 )
1083 {
1084 switch ( state ) {
1085 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop: {
1086
1087
1088
1089
1090 T_eq_u32( ctx->owner_priority_after, ctx->owner_priority );
1091 break;
1092 }
1093
1094 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower: {
1095
1096
1097
1098
1099 T_eq_u32( ctx->owner_priority_after, ctx->owner_priority + 1 );
1100 break;
1101 }
1102
1103 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop: {
1104
1105
1106
1107 T_eq_u32( ctx->owner_priority_after, PRIO_INVALID );
1108 break;
1109 }
1110
1111 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA:
1112 break;
1113 }
1114 }
1115
1116 static void ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Check(
1117 ScoreTqReqTimeoutPriorityInherit_Context *ctx,
1118 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority state
1119 )
1120 {
1121 switch ( state ) {
1122 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop: {
1123
1124
1125
1126
1127
1128 T_eq_u32( ctx->owner_owner_priority_after, ctx->owner_owner_priority );
1129 break;
1130 }
1131
1132 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower: {
1133
1134
1135
1136
1137
1138 T_eq_u32( ctx->owner_owner_priority_after, ctx->owner_owner_priority + 1 );
1139 break;
1140 }
1141
1142 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Drop: {
1143
1144
1145
1146
1147 T_eq_u32( ctx->owner_owner_priority_after, PRIO_INVALID );
1148 break;
1149 }
1150
1151 case ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA:
1152 break;
1153 }
1154 }
1155
1156 static void ScoreTqReqTimeoutPriorityInherit_Setup(
1157 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1158 )
1159 {
1160 ctx->request.arg = ctx;
1161 TQReset( ctx->tq_ctx );
1162 SetSelfPriority( PRIO_NEARLY_IDLE );
1163 }
1164
1165 static void ScoreTqReqTimeoutPriorityInherit_Setup_Wrap( void *arg )
1166 {
1167 ScoreTqReqTimeoutPriorityInherit_Context *ctx;
1168
1169 ctx = arg;
1170 ctx->Map.in_action_loop = false;
1171 ScoreTqReqTimeoutPriorityInherit_Setup( ctx );
1172 }
1173
1174 static void ScoreTqReqTimeoutPriorityInherit_Teardown(
1175 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1176 )
1177 {
1178 TQReset( ctx->tq_ctx );
1179 }
1180
1181 static void ScoreTqReqTimeoutPriorityInherit_Teardown_Wrap( void *arg )
1182 {
1183 ScoreTqReqTimeoutPriorityInherit_Context *ctx;
1184
1185 ctx = arg;
1186 ctx->Map.in_action_loop = false;
1187 ScoreTqReqTimeoutPriorityInherit_Teardown( ctx );
1188 }
1189
1190 static void ScoreTqReqTimeoutPriorityInherit_Prepare(
1191 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1192 )
1193 {
1194 ctx->queue_helper_surrender = false;
1195 ctx->owner_helper_release = false;
1196 ctx->owner_queue_helper_release = false;
1197 ctx->owner_owner_helper_release = false;
1198 }
1199
1200 static void ScoreTqReqTimeoutPriorityInherit_Action(
1201 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1202 )
1203 {
1204 rtems_task_priority priority;
1205
1206 priority = PRIO_FLEXIBLE;
1207 TQSetScheduler( ctx->tq_ctx, THREAD, ctx->scheduler_id, priority );
1208
1209 TQSend(
1210 ctx->tq_ctx,
1211 OWNER,
1212 TQ_EVENT_MUTEX_A_OBTAIN | TQ_EVENT_ENQUEUE
1213 );
1214
1215 if ( ctx->owner_obtain != 0 ) {
1216 TQSend(
1217 ctx->tq_ctx,
1218 OWNER_OWNER,
1219 TQ_EVENT_MUTEX_B_OBTAIN | ctx->owner_obtain
1220 );
1221 TQSend( ctx->tq_ctx, OWNER, ctx->owner_obtain | ctx->owner_release );
1222 }
1223
1224 PrepareThread( ctx );
1225 priority = PrepareQueue( ctx, priority );
1226 priority = PrepareOwner( ctx, priority );
1227 priority = PrepareOwnerQueue( ctx, priority );
1228 PrepareOwnerOwner( ctx, priority );
1229
1230 TQClearDone( ctx->tq_ctx, THREAD );
1231
1232 switch ( ctx->wait_state ) {
1233 case TQ_WAIT_STATE_BLOCKED:
1234 TQSendAndWaitForExecutionStop(
1235 ctx->tq_ctx,
1236 THREAD,
1237 TQ_EVENT_ENQUEUE_TIMED
1238 );
1239 Tick( ctx );
1240 GetPriorities( ctx );
1241 TQSend( ctx->tq_ctx, OWNER, TQ_EVENT_SURRENDER );
1242 break;
1243 case TQ_WAIT_STATE_INTEND_TO_BLOCK:
1244 T_scheduler_set_event_handler( SchedulerBlock, ctx );
1245 TQSendAndWaitForExecutionStop(
1246 ctx->tq_ctx,
1247 THREAD,
1248 TQ_EVENT_ENQUEUE_TIMED
1249 );
1250 GetPriorities( ctx );
1251 TQSend( ctx->tq_ctx, OWNER, TQ_EVENT_SURRENDER );
1252 break;
1253 case TQ_WAIT_STATE_READY_AGAIN:
1254 TQSendAndWaitForExecutionStop(
1255 ctx->tq_ctx,
1256 THREAD,
1257 TQ_EVENT_ENQUEUE_TIMED
1258 );
1259 T_scheduler_set_event_handler( SchedulerUnblock, ctx );
1260 TQSend( ctx->tq_ctx, OWNER, TQ_EVENT_SURRENDER );
1261 GetPriorities( ctx );
1262 TQSend( ctx->tq_ctx, THREAD, TQ_EVENT_SURRENDER );
1263 break;
1264 }
1265
1266 TQWaitForDone( ctx->tq_ctx, THREAD );
1267 TQWaitForExecutionStop( ctx->tq_ctx, THREAD );
1268 }
1269
1270 static void ScoreTqReqTimeoutPriorityInherit_Cleanup(
1271 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1272 )
1273 {
1274 if ( ctx->owner_obtain != 0 ) {
1275 TQSend(
1276 ctx->tq_ctx,
1277 OWNER_OWNER,
1278 TQ_EVENT_MUTEX_B_RELEASE | ctx->owner_release
1279 );
1280
1281 if ( ctx->owner_queue_helper_release ) {
1282 TQSendAndWaitForExecutionStop(
1283 ctx->tq_ctx,
1284 OWNER_QUEUE_HELPER,
1285 ctx->owner_release
1286 );
1287 }
1288
1289 if ( ctx->owner_owner_helper_release ) {
1290 TQSendAndWaitForExecutionStop(
1291 ctx->tq_ctx,
1292 OWNER_OWNER_HELPER,
1293 TQ_EVENT_MUTEX_B_RELEASE
1294 );
1295 }
1296 }
1297
1298 TQSend( ctx->tq_ctx, OWNER, TQ_EVENT_MUTEX_A_RELEASE );
1299
1300 if ( ctx->queue_helper_surrender ) {
1301 TQSendAndWaitForExecutionStop(
1302 ctx->tq_ctx,
1303 QUEUE_HELPER,
1304 TQ_EVENT_SURRENDER
1305 );
1306 }
1307
1308 if ( ctx->owner_helper_release ) {
1309 TQSendAndWaitForExecutionStop(
1310 ctx->tq_ctx,
1311 OWNER_HELPER,
1312 TQ_EVENT_MUTEX_A_RELEASE
1313 );
1314 }
1315
1316 if ( ctx->other_scheduler ) {
1317 TQSendAndWaitForExecutionStop(
1318 ctx->tq_ctx,
1319 THREAD,
1320 TQ_EVENT_MUTEX_D_RELEASE
1321 );
1322 TQSendAndWaitForExecutionStop(
1323 ctx->tq_ctx,
1324 THREAD_HELPER_A,
1325 TQ_EVENT_MUTEX_D_RELEASE
1326 );
1327
1328 if ( rtems_scheduler_get_processor_maximum() >= 3 ) {
1329 TQSendAndWaitForExecutionStop(
1330 ctx->tq_ctx,
1331 THREAD_HELPER_B,
1332 TQ_EVENT_MUTEX_D_RELEASE
1333 );
1334 }
1335 }
1336 }
1337
1338 static const ScoreTqReqTimeoutPriorityInherit_Entry
1339 ScoreTqReqTimeoutPriorityInherit_Entries[] = {
1340 #if !defined(RTEMS_SMP)
1341 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1342 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1343 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1344 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1345 #else
1346 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1347 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1348 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1349 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1350 #endif
1351 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1352 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1353 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1354 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1355 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1356 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1357 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1358 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1359 #if !defined(RTEMS_SMP)
1360 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1361 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1362 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1363 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1364 #else
1365 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1366 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1367 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1368 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1369 #endif
1370 #if !defined(RTEMS_SMP)
1371 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1372 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1373 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1374 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1375 #else
1376 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1377 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1378 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1379 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1380 #endif
1381 #if !defined(RTEMS_SMP)
1382 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1383 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1384 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1385 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1386 #else
1387 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1388 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1389 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1390 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1391 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1392 #endif
1393 #if !defined(RTEMS_SMP)
1394 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1395 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1396 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1397 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1398 #else
1399 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1400 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1401 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1402 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1403 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1404 #endif
1405 #if !defined(RTEMS_SMP)
1406 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1407 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1408 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1409 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1410 #else
1411 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1412 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1413 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1414 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1415 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1416 #endif
1417 #if !defined(RTEMS_SMP)
1418 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1419 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1420 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1421 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1422 #else
1423 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1424 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1425 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1426 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1427 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1428 #endif
1429 #if !defined(RTEMS_SMP)
1430 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1431 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1432 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1433 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1434 #else
1435 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1436 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1437 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1438 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1439 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1440 #endif
1441 #if !defined(RTEMS_SMP)
1442 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1443 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1444 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1445 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1446 #else
1447 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1448 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1449 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1450 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1451 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1452 #endif
1453 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1454 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1455 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1456 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1457 #if !defined(RTEMS_SMP)
1458 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1459 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1460 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1461 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1462 #else
1463 { 0, 0, 0, 0, 0, 0, 1, 1, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok,
1464 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1465 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1466 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1467 #endif
1468 #if !defined(RTEMS_SMP)
1469 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1470 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1471 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1472 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1473 #else
1474 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1475 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1476 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1477 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1478 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1479 #endif
1480 #if !defined(RTEMS_SMP)
1481 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1482 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1483 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1484 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1485 #else
1486 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1487 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1488 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1489 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1490 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1491 #endif
1492 #if !defined(RTEMS_SMP)
1493 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1494 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1495 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1496 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1497 #else
1498 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1500 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1501 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1502 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1503 #endif
1504 #if !defined(RTEMS_SMP)
1505 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1506 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1507 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1508 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1509 #else
1510 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1512 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1513 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1514 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1515 #endif
1516 #if !defined(RTEMS_SMP)
1517 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1518 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1519 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1520 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1521 #else
1522 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1523 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1524 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1525 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1526 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1527 #endif
1528 #if !defined(RTEMS_SMP)
1529 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1530 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1531 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1532 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1533 #else
1534 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1535 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1536 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1537 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1538 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1539 #endif
1540 #if !defined(RTEMS_SMP)
1541 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1542 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1543 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1544 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1545 #else
1546 { 0, 0, 0, 0, 0, 0, 1, 1, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok,
1547 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1548 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1549 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1550 #endif
1551 #if !defined(RTEMS_SMP)
1552 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1553 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1554 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1555 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1556 #else
1557 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1559 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1560 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1561 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1562 #endif
1563 #if !defined(RTEMS_SMP)
1564 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1565 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1566 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1567 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1568 #else
1569 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1571 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1572 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1573 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1574 #endif
1575 #if !defined(RTEMS_SMP)
1576 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1577 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1578 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1579 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1580 #else
1581 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1583 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1584 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1585 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1586 #endif
1587 #if !defined(RTEMS_SMP)
1588 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1589 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1590 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1591 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1592 #else
1593 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1595 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1596 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1597 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1598 #endif
1599 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1600 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1601 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1602 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1603 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1604 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1605 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1606 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1607 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1608 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1609 #if !defined(RTEMS_SMP)
1610 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1611 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1612 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1613 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1614 #else
1615 { 0, 0, 0, 0, 0, 0, 1, 1, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok,
1616 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1617 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1618 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1619 #endif
1620 #if !defined(RTEMS_SMP)
1621 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1622 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1623 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1624 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1625 #else
1626 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1627 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1628 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1629 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1630 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1631 #endif
1632 #if !defined(RTEMS_SMP)
1633 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1634 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1635 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1636 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1637 #else
1638 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1639 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1640 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1641 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1642 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1643 #endif
1644 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1645 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1646 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1647 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1648 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1649 { 0, 0, 0, 0, 0, 0, 1, 1, 0,
1650 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1651 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1652 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1653 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1654 { 0, 0, 0, 0, 0, 0, 1, 1, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok,
1655 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1656 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1657 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1658 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1659 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1660 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1661 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1662 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1663 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1664 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1665 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1666 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1667 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1668 #if !defined(RTEMS_SMP)
1669 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1670 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1671 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1672 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1673 #else
1674 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1676 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1677 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1678 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1679 #endif
1680 #if !defined(RTEMS_SMP)
1681 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1682 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1683 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1684 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1685 #else
1686 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1688 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1689 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1690 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1691 #endif
1692 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1694 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1695 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1696 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1697 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1699 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1700 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1701 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1702 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1703 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1704 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1705 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1706 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1707 { 0, 0, 0, 0, 0, 0, 0, 1, 0,
1708 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1709 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1710 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1711 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1712 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1714 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1715 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1716 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1717 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1719 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1720 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1721 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Nop },
1722 #if !defined(RTEMS_SMP)
1723 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1724 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1725 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1726 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1727 #else
1728 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1730 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1731 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1732 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1733 #endif
1734 #if !defined(RTEMS_SMP)
1735 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1736 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1737 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1738 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1739 #else
1740 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1742 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1743 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1744 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1745 #endif
1746 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1748 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1749 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1750 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1751 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1753 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1754 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
1755 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
1756 { 0, 0, 0, 0, 0, 0, 1, 1, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_Ok,
1757 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1758 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
1759 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1760 #if !defined(RTEMS_SMP)
1761 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1762 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1763 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1764 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
1765 #else
1766 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1768 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
1769 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1770 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Drop },
1771 #endif
1772 #if !defined(RTEMS_SMP)
1773 { 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
1774 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
1775 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
1776 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA }
1777 #else
1778 { 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
1780 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
1781 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Drop,
1782 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Drop }
1783 #endif
1784 };
1785
1786 static const uint8_t
1787 ScoreTqReqTimeoutPriorityInherit_Map[] = {
1788 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
1789 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
1790 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
1791 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
1792 1, 2, 2, 2, 2, 2, 2, 24, 25, 31, 24, 25, 31, 2, 2, 2, 24, 25, 31, 24, 25, 31,
1793 2, 2, 2, 1, 1, 1, 24, 25, 31, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2, 2, 24,
1794 25, 11, 24, 25, 11, 2, 2, 2, 1, 1, 1, 24, 25, 11, 2, 2, 2, 32, 33, 11, 32,
1795 33, 11, 2, 2, 2, 32, 33, 11, 32, 33, 11, 2, 2, 2, 1, 1, 1, 32, 33, 11, 2, 2,
1796 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 1, 1, 1,
1797 36, 37, 11, 2, 2, 2, 1, 1, 1, 29, 30, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1798 1, 1, 1, 29, 30, 46, 2, 2, 2, 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1799 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1, 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1,
1800 1, 1, 1, 2, 2, 2, 1, 1, 1, 38, 39, 11, 2, 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1,
1801 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 40, 41, 11, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1802 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1803 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1804 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1805 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 24, 25,
1806 31, 24, 25, 31, 2, 2, 2, 24, 25, 31, 24, 25, 31, 2, 2, 2, 1, 1, 1, 24, 25,
1807 31, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2,
1808 2, 1, 1, 1, 24, 25, 11, 2, 2, 2, 32, 33, 11, 32, 33, 11, 2, 2, 2, 32, 33, 11,
1809 32, 33, 11, 2, 2, 2, 1, 1, 1, 32, 33, 11, 2, 2, 2, 44, 45, 11, 36, 37, 11, 2,
1810 2, 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 1, 1, 1, 36, 37, 11, 2, 2, 2, 1, 1, 1,
1811 29, 30, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 46, 2, 2, 2,
1812 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11,
1813 2, 2, 2, 1, 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
1814 38, 39, 11, 2, 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1815 1, 1, 1, 40, 41, 11, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1816 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1817 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1818 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1819 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1820 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1821 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1822 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1823 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11, 1,
1824 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1, 1, 1, 29,
1825 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1,
1826 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 38, 39, 11, 2,
1827 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 40,
1828 41, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0,
1829 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
1830 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1831 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1832 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 5, 6, 12, 5, 6, 12, 3, 3, 3, 5, 6, 12, 5, 6,
1833 12, 3, 3, 3, 0, 0, 0, 5, 6, 12, 3, 3, 3, 5, 6, 4, 5, 6, 4, 3, 3, 3, 5, 6, 4,
1834 5, 6, 4, 3, 3, 3, 0, 0, 0, 5, 6, 4, 3, 3, 3, 9, 10, 4, 9, 10, 4, 3, 3, 3, 9,
1835 10, 4, 9, 10, 4, 3, 3, 3, 0, 0, 0, 9, 10, 4, 3, 3, 3, 22, 23, 4, 20, 21, 4,
1836 3, 3, 3, 22, 23, 4, 20, 21, 4, 3, 3, 3, 0, 0, 0, 20, 21, 4, 3, 3, 3, 0, 0, 0,
1837 7, 8, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 26, 3, 3, 3, 0,
1838 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 4, 3, 3, 3,
1839 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4,
1840 3, 3, 3, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 15,
1841 16, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0,
1842 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
1843 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1844 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1845 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 5, 6, 12, 5, 6, 12, 3, 3, 3, 5, 6, 12, 5, 6,
1846 12, 3, 3, 3, 0, 0, 0, 5, 6, 12, 3, 3, 3, 5, 6, 4, 5, 6, 4, 3, 3, 3, 5, 6, 4,
1847 5, 6, 4, 3, 3, 3, 0, 0, 0, 5, 6, 4, 3, 3, 3, 9, 10, 4, 9, 10, 4, 3, 3, 3, 9,
1848 10, 4, 9, 10, 4, 3, 3, 3, 0, 0, 0, 9, 10, 4, 3, 3, 3, 22, 23, 4, 20, 21, 4,
1849 3, 3, 3, 22, 23, 4, 20, 21, 4, 3, 3, 3, 0, 0, 0, 20, 21, 4, 3, 3, 3, 0, 0, 0,
1850 7, 8, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 26, 3, 3, 3, 0,
1851 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 4, 3, 3, 3,
1852 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4,
1853 3, 3, 3, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 15,
1854 16, 4, 3, 3, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0,
1855 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0,
1856 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3,
1857 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3,
1858 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 4, 3, 3, 3, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 7, 8, 4, 3, 3, 3, 0, 0, 0, 13, 14, 4, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4, 3, 3, 3, 0, 0, 0, 15, 16, 4,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 15, 16, 4, 17, 18, 19, 17, 18,
1867 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 0, 0, 0, 17,
1868 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17,
1869 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27,
1870 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47, 48, 4, 42, 43, 4, 34,
1871 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0, 0, 0, 34, 35, 4, 5, 6,
1872 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 5,
1873 6, 12, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 0, 0,
1874 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
1875 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23,
1876 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 26, 0, 0, 0, 7, 8, 26, 7, 8, 4, 0, 0, 0, 7, 8,
1878 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0,
1879 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16,
1880 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16,
1881 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 0,
1882 0, 0, 5, 6, 19, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6,
1883 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10,
1884 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4,
1885 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6, 12, 5, 6, 12, 5,
1886 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 5, 6, 12, 5, 6, 4, 5,
1887 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 0, 0, 0, 5, 6, 4, 9, 10,
1888 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9,
1889 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20,
1890 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 7, 8, 26, 0, 0, 0, 7, 8, 26, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
1894 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 7, 8, 4, 0,
1895 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 7, 8, 4,
1896 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13,
1897 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13,
1898 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4,
1899 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
1907 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 17, 18, 19,
1908 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 0, 0,
1909 0, 17, 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18,
1910 4, 17, 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4,
1911 27, 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47, 48, 4, 42, 43, 4,
1912 34, 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0, 0, 0, 34, 35, 4, 5,
1913 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0,
1914 5, 6, 12, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 0,
1915 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
1916 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23,
1917 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 26, 0, 0, 0, 7, 8, 26, 7, 8, 4, 0, 0, 0, 7, 8,
1919 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0,
1920 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16,
1921 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16,
1922 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 0,
1923 0, 0, 5, 6, 19, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6,
1924 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10,
1925 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4,
1926 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6, 12, 5, 6, 12, 5,
1927 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 5, 6, 12, 5, 6, 4, 5,
1928 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 0, 0, 0, 5, 6, 4, 9, 10,
1929 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9,
1930 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20,
1931 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 7, 8, 26, 0, 0, 0, 7, 8, 26, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
1935 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 7, 8, 4, 0,
1936 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 7, 8, 4,
1937 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13,
1938 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13,
1939 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4,
1940 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 7, 8, 4, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0,
1946 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
1948 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4
1949 };
1950
1951 static size_t ScoreTqReqTimeoutPriorityInherit_Scope(
1952 void *arg,
1953 char *buf,
1954 size_t n
1955 )
1956 {
1957 ScoreTqReqTimeoutPriorityInherit_Context *ctx;
1958
1959 ctx = arg;
1960
1961 if ( ctx->Map.in_action_loop ) {
1962 return T_get_scope(
1963 ScoreTqReqTimeoutPriorityInherit_PreDesc,
1964 buf,
1965 n,
1966 ctx->Map.pcs
1967 );
1968 }
1969
1970 return 0;
1971 }
1972
1973 static T_fixture ScoreTqReqTimeoutPriorityInherit_Fixture = {
1974 .setup = ScoreTqReqTimeoutPriorityInherit_Setup_Wrap,
1975 .stop = NULL,
1976 .teardown = ScoreTqReqTimeoutPriorityInherit_Teardown_Wrap,
1977 .scope = ScoreTqReqTimeoutPriorityInherit_Scope,
1978 .initial_context = &ScoreTqReqTimeoutPriorityInherit_Instance
1979 };
1980
1981 static inline ScoreTqReqTimeoutPriorityInherit_Entry
1982 ScoreTqReqTimeoutPriorityInherit_PopEntry(
1983 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1984 )
1985 {
1986 size_t index;
1987
1988 index = ctx->Map.index;
1989 ctx->Map.index = index + 1;
1990 return ScoreTqReqTimeoutPriorityInherit_Entries[
1991 ScoreTqReqTimeoutPriorityInherit_Map[ index ]
1992 ];
1993 }
1994
1995 static void ScoreTqReqTimeoutPriorityInherit_SetPreConditionStates(
1996 ScoreTqReqTimeoutPriorityInherit_Context *ctx
1997 )
1998 {
1999 ctx->Map.pcs[ 0 ] = ctx->Map.pci[ 0 ];
2000 ctx->Map.pcs[ 1 ] = ctx->Map.pci[ 1 ];
2001 ctx->Map.pcs[ 2 ] = ctx->Map.pci[ 2 ];
2002 ctx->Map.pcs[ 3 ] = ctx->Map.pci[ 3 ];
2003 ctx->Map.pcs[ 4 ] = ctx->Map.pci[ 4 ];
2004
2005 if ( ctx->Map.entry.Pre_OwnerQueue_NA ) {
2006 ctx->Map.pcs[ 5 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_NA;
2007 } else {
2008 ctx->Map.pcs[ 5 ] = ctx->Map.pci[ 5 ];
2009 }
2010
2011 if ( ctx->Map.entry.Pre_OwnerOwnerPriority_NA ) {
2012 ctx->Map.pcs[ 6 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_NA;
2013 } else {
2014 ctx->Map.pcs[ 6 ] = ctx->Map.pci[ 6 ];
2015 }
2016
2017 ctx->Map.pcs[ 7 ] = ctx->Map.pci[ 7 ];
2018 }
2019
2020 static void ScoreTqReqTimeoutPriorityInherit_TestVariant(
2021 ScoreTqReqTimeoutPriorityInherit_Context *ctx
2022 )
2023 {
2024 ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Prepare(
2025 ctx,
2026 ctx->Map.pcs[ 0 ]
2027 );
2028 ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_Prepare(
2029 ctx,
2030 ctx->Map.pcs[ 1 ]
2031 );
2032 ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Prepare( ctx, ctx->Map.pcs[ 2 ] );
2033 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Prepare(
2034 ctx,
2035 ctx->Map.pcs[ 3 ]
2036 );
2037 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_Prepare(
2038 ctx,
2039 ctx->Map.pcs[ 4 ]
2040 );
2041 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Prepare(
2042 ctx,
2043 ctx->Map.pcs[ 5 ]
2044 );
2045 ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Prepare(
2046 ctx,
2047 ctx->Map.pcs[ 6 ]
2048 );
2049 ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_Prepare(
2050 ctx,
2051 ctx->Map.pcs[ 7 ]
2052 );
2053 ScoreTqReqTimeoutPriorityInherit_Action( ctx );
2054 ScoreTqReqTimeoutPriorityInherit_Post_Status_Check(
2055 ctx,
2056 ctx->Map.entry.Post_Status
2057 );
2058 ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Check(
2059 ctx,
2060 ctx->Map.entry.Post_Unblock
2061 );
2062 ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Check(
2063 ctx,
2064 ctx->Map.entry.Post_OwnerPriority
2065 );
2066 ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Check(
2067 ctx,
2068 ctx->Map.entry.Post_OwnerOwnerPriority
2069 );
2070 }
2071
2072 static T_fixture_node ScoreTqReqTimeoutPriorityInherit_Node;
2073
2074 static T_remark ScoreTqReqTimeoutPriorityInherit_Remark = {
2075 .next = NULL,
2076 .remark = "ScoreTqReqTimeoutPriorityInherit"
2077 };
2078
2079 void ScoreTqReqTimeoutPriorityInherit_Run( TQContext *tq_ctx )
2080 {
2081 ScoreTqReqTimeoutPriorityInherit_Context *ctx;
2082
2083 ctx = &ScoreTqReqTimeoutPriorityInherit_Instance;
2084 ctx->tq_ctx = tq_ctx;
2085
2086 ctx = T_push_fixture(
2087 &ScoreTqReqTimeoutPriorityInherit_Node,
2088 &ScoreTqReqTimeoutPriorityInherit_Fixture
2089 );
2090 ctx->Map.in_action_loop = true;
2091 ctx->Map.index = 0;
2092
2093 for (
2094 ctx->Map.pci[ 0 ] = ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Home;
2095 ctx->Map.pci[ 0 ] < ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_NA;
2096 ++ctx->Map.pci[ 0 ]
2097 ) {
2098 for (
2099 ctx->Map.pci[ 1 ] = ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_One;
2100 ctx->Map.pci[ 1 ] < ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_NA;
2101 ++ctx->Map.pci[ 1 ]
2102 ) {
2103 for (
2104 ctx->Map.pci[ 2 ] = ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Only;
2105 ctx->Map.pci[ 2 ] < ScoreTqReqTimeoutPriorityInherit_Pre_Queue_NA;
2106 ++ctx->Map.pci[ 2 ]
2107 ) {
2108 for (
2109 ctx->Map.pci[ 3 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_Only;
2110 ctx->Map.pci[ 3 ] < ScoreTqReqTimeoutPriorityInherit_Pre_OwnerPriority_NA;
2111 ++ctx->Map.pci[ 3 ]
2112 ) {
2113 for (
2114 ctx->Map.pci[ 4 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_NotEnqueued;
2115 ctx->Map.pci[ 4 ] < ScoreTqReqTimeoutPriorityInherit_Pre_OwnerState_NA;
2116 ++ctx->Map.pci[ 4 ]
2117 ) {
2118 for (
2119 ctx->Map.pci[ 5 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_Only;
2120 ctx->Map.pci[ 5 ] < ScoreTqReqTimeoutPriorityInherit_Pre_OwnerQueue_NA;
2121 ++ctx->Map.pci[ 5 ]
2122 ) {
2123 for (
2124 ctx->Map.pci[ 6 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_Only;
2125 ctx->Map.pci[ 6 ] < ScoreTqReqTimeoutPriorityInherit_Pre_OwnerOwnerPriority_NA;
2126 ++ctx->Map.pci[ 6 ]
2127 ) {
2128 for (
2129 ctx->Map.pci[ 7 ] = ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_Blocked;
2130 ctx->Map.pci[ 7 ] < ScoreTqReqTimeoutPriorityInherit_Pre_WaitState_NA;
2131 ++ctx->Map.pci[ 7 ]
2132 ) {
2133 ctx->Map.entry = ScoreTqReqTimeoutPriorityInherit_PopEntry(
2134 ctx
2135 );
2136
2137 if ( ctx->Map.entry.Skip ) {
2138 continue;
2139 }
2140
2141 ScoreTqReqTimeoutPriorityInherit_SetPreConditionStates(
2142 ctx
2143 );
2144 ScoreTqReqTimeoutPriorityInherit_Prepare( ctx );
2145 ScoreTqReqTimeoutPriorityInherit_TestVariant( ctx );
2146 ScoreTqReqTimeoutPriorityInherit_Cleanup( ctx );
2147 }
2148 }
2149 }
2150 }
2151 }
2152 }
2153 }
2154 }
2155
2156 T_add_remark( &ScoreTqReqTimeoutPriorityInherit_Remark );
2157 T_pop_fixture();
2158 }
2159
2160