summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-13 09:48:49 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-13 09:56:26 +0200
commitada9035dbe1acc94edf5b938b6b3a2dcd3f8ed83 (patch)
treef6e57d7fac06e80feebb334fd85eecee0e81aa6d
parent53088d03fe52b33fd89b647ea4af0dc5fade5448 (diff)
testsuites/validation/tr-tq-timeout-priority-inherit.c
-rw-r--r--testsuites/validation/tr-tq-timeout-priority-inherit.c412
-rw-r--r--testsuites/validation/tr-tq-timeout-priority-inherit.h16
2 files changed, 226 insertions, 202 deletions
diff --git a/testsuites/validation/tr-tq-timeout-priority-inherit.c b/testsuites/validation/tr-tq-timeout-priority-inherit.c
index 6334cea5ca..6e744ba7d9 100644
--- a/testsuites/validation/tr-tq-timeout-priority-inherit.c
+++ b/testsuites/validation/tr-tq-timeout-priority-inherit.c
@@ -71,8 +71,8 @@
typedef struct {
uint32_t Skip : 1;
- uint32_t Pre_Scheduler_NA : 1;
- uint32_t Pre_OtherScheduler_NA : 1;
+ uint32_t Pre_HomeScheduler_NA : 1;
+ uint32_t Pre_EligibleScheduler_NA : 1;
uint32_t Pre_Queue_NA : 1;
uint32_t Pre_OwnerPriority_NA : 1;
uint32_t Pre_OwnerState_NA : 1;
@@ -246,15 +246,15 @@ typedef struct {
static ScoreTqReqTimeoutPriorityInherit_Context
ScoreTqReqTimeoutPriorityInherit_Instance;
-static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_Scheduler[] = {
+static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_HomeScheduler[] = {
"Home",
"Helping",
"NA"
};
-static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_OtherScheduler[] = {
- "Yes",
- "No",
+static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_EligibleScheduler[] = {
+ "One",
+ "More",
"NA"
};
@@ -302,8 +302,8 @@ static const char * const ScoreTqReqTimeoutPriorityInherit_PreDesc_WaitState[] =
};
static const char * const * const ScoreTqReqTimeoutPriorityInherit_PreDesc[] = {
- ScoreTqReqTimeoutPriorityInherit_PreDesc_Scheduler,
- ScoreTqReqTimeoutPriorityInherit_PreDesc_OtherScheduler,
+ ScoreTqReqTimeoutPriorityInherit_PreDesc_HomeScheduler,
+ ScoreTqReqTimeoutPriorityInherit_PreDesc_EligibleScheduler,
ScoreTqReqTimeoutPriorityInherit_PreDesc_Queue,
ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerPriority,
ScoreTqReqTimeoutPriorityInherit_PreDesc_OwnerState,
@@ -317,7 +317,9 @@ typedef ScoreTqReqTimeoutPriorityInherit_Context Context;
#define THREAD TQ_BLOCKER_A
-#define THREAD_HELPER TQ_HELPER_B
+#define THREAD_HELPER_A TQ_HELPER_B
+
+#define THREAD_HELPER_B TQ_HELPER_C
#define QUEUE_HELPER TQ_BLOCKER_B
@@ -444,23 +446,37 @@ static void PrepareThread( const Context *ctx )
other_scheduler_id = SCHEDULER_B_ID;
}
- TQSetScheduler(
- ctx->tq_ctx,
- THREAD_HELPER,
- other_scheduler_id,
- PRIO_NEARLY_IDLE - 1
- );
-
TQSendAndWaitForExecutionStop(
ctx->tq_ctx,
THREAD,
TQ_EVENT_MUTEX_D_OBTAIN
);
+
+ TQSetScheduler(
+ ctx->tq_ctx,
+ THREAD_HELPER_A,
+ other_scheduler_id,
+ PRIO_NEARLY_IDLE - 1
+ );
TQSendAndWaitForExecutionStop(
ctx->tq_ctx,
- THREAD_HELPER,
+ THREAD_HELPER_A,
TQ_EVENT_MUTEX_D_OBTAIN
);
+
+ if ( rtems_scheduler_get_processor_maximum() >= 3 ) {
+ TQSetScheduler(
+ ctx->tq_ctx,
+ THREAD_HELPER_B,
+ SCHEDULER_C_ID,
+ PRIO_NORMAL
+ );
+ TQSendAndWaitForExecutionStop(
+ ctx->tq_ctx,
+ THREAD_HELPER_B,
+ TQ_EVENT_MUTEX_D_OBTAIN
+ );
+ }
}
}
@@ -677,13 +693,13 @@ static void PrepareOwnerOwner( Context *ctx, rtems_task_priority priority )
}
}
-static void ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Prepare(
- ScoreTqReqTimeoutPriorityInherit_Context *ctx,
- ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler state
+static void ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Prepare(
+ ScoreTqReqTimeoutPriorityInherit_Context *ctx,
+ ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler state
)
{
switch ( state ) {
- case ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Home: {
+ case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Home: {
/*
* While the home scheduler of the thread is the home scheduler of the
* thread queue owner.
@@ -692,7 +708,7 @@ static void ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Prepare(
break;
}
- case ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Helping: {
+ case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Helping: {
/*
* While the home scheduler of the thread is a helping scheduler of the
* thread queue owner.
@@ -701,34 +717,34 @@ static void ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Prepare(
break;
}
- case ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_NA:
+ case ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_NA:
break;
}
}
-static void ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_Prepare(
- ScoreTqReqTimeoutPriorityInherit_Context *ctx,
- ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler state
+static void ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_Prepare(
+ ScoreTqReqTimeoutPriorityInherit_Context *ctx,
+ ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler state
)
{
switch ( state ) {
- case ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_Yes: {
+ case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_One: {
/*
- * While the thread has at least two eligible scheduler.
+ * While the thread has exactly one eligible scheduler.
*/
- ctx->other_scheduler = true;
+ ctx->other_scheduler = false;
break;
}
- case ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_No: {
+ case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_More: {
/*
- * While the thread has exactly one eligible scheduler.
+ * While the thread has at least two eligible scheduler.
*/
- ctx->other_scheduler = false;
+ ctx->other_scheduler = true;
break;
}
- case ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_NA:
+ case ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_NA:
break;
}
}
@@ -1305,9 +1321,17 @@ static void ScoreTqReqTimeoutPriorityInherit_Cleanup(
);
TQSendAndWaitForExecutionStop(
ctx->tq_ctx,
- THREAD_HELPER,
+ THREAD_HELPER_A,
TQ_EVENT_MUTEX_D_RELEASE
);
+
+ if ( rtems_scheduler_get_processor_maximum() >= 3 ) {
+ TQSendAndWaitForExecutionStop(
+ ctx->tq_ctx,
+ THREAD_HELPER_B,
+ TQ_EVENT_MUTEX_D_RELEASE
+ );
+ }
}
}
@@ -1328,21 +1352,21 @@ ScoreTqReqTimeoutPriorityInherit_Entries[] = {
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
-#if !defined(RTEMS_SMP)
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
-#else
+#if !defined(RTEMS_SMP)
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
-#endif
+#else
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_NA,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
+#endif
#if !defined(RTEMS_SMP)
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
@@ -1572,6 +1596,16 @@ ScoreTqReqTimeoutPriorityInherit_Entries[] = {
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_Lower },
#endif
+ { 0, 0, 0, 0, 0, 0, 1, 1, 0,
+ ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
+ ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
+ ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
+ ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
+ { 0, 0, 0, 0, 0, 0, 1, 1, 0,
+ ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
+ ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
+ ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
+ ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
#if !defined(RTEMS_SMP)
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
@@ -1583,16 +1617,6 @@ ScoreTqReqTimeoutPriorityInherit_Entries[] = {
ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Nop,
ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
#endif
- { 0, 0, 0, 0, 0, 0, 1, 1, 0,
- ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
- ScoreTqReqTimeoutPriorityInherit_Post_Unblock_Yes,
- ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
- ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
- { 0, 0, 0, 0, 0, 0, 1, 1, 0,
- ScoreTqReqTimeoutPriorityInherit_Post_Status_Timeout,
- ScoreTqReqTimeoutPriorityInherit_Post_Unblock_No,
- ScoreTqReqTimeoutPriorityInherit_Post_OwnerPriority_Lower,
- ScoreTqReqTimeoutPriorityInherit_Post_OwnerOwnerPriority_NA },
#if !defined(RTEMS_SMP)
{ 1, 0, 0, 0, 0, 0, 0, 0, 0, ScoreTqReqTimeoutPriorityInherit_Post_Status_NA,
ScoreTqReqTimeoutPriorityInherit_Post_Unblock_NA,
@@ -1761,167 +1785,167 @@ ScoreTqReqTimeoutPriorityInherit_Entries[] = {
static const uint8_t
ScoreTqReqTimeoutPriorityInherit_Map[] = {
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
- 0, 2, 2, 2, 2, 2, 2, 5, 6, 12, 5, 6, 12, 2, 2, 2, 5, 6, 12, 5, 6, 12, 2, 2,
- 2, 0, 0, 0, 5, 6, 12, 2, 2, 2, 5, 6, 4, 5, 6, 4, 2, 2, 2, 5, 6, 4, 5, 6, 4,
- 2, 2, 2, 0, 0, 0, 5, 6, 4, 2, 2, 2, 9, 10, 4, 9, 10, 4, 2, 2, 2, 9, 10, 4, 9,
- 10, 4, 2, 2, 2, 0, 0, 0, 9, 10, 4, 2, 2, 2, 22, 23, 4, 20, 21, 4, 2, 2, 2,
- 22, 23, 4, 20, 21, 4, 2, 2, 2, 0, 0, 0, 20, 21, 4, 2, 2, 2, 0, 0, 0, 7, 8,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 24, 2, 2, 2, 0, 0, 0,
- 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 4, 2, 2, 2, 0, 0,
- 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 13, 14, 4, 2, 2,
- 2, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 15, 16,
- 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
- 0, 0, 2, 2, 2, 2, 2, 2, 5, 6, 12, 5, 6, 12, 2, 2, 2, 5, 6, 12, 5, 6, 12, 2,
- 2, 2, 0, 0, 0, 5, 6, 12, 2, 2, 2, 5, 6, 4, 5, 6, 4, 2, 2, 2, 5, 6, 4, 5, 6,
- 4, 2, 2, 2, 0, 0, 0, 5, 6, 4, 2, 2, 2, 9, 10, 4, 9, 10, 4, 2, 2, 2, 9, 10, 4,
- 9, 10, 4, 2, 2, 2, 0, 0, 0, 9, 10, 4, 2, 2, 2, 22, 23, 4, 20, 21, 4, 2, 2, 2,
- 22, 23, 4, 20, 21, 4, 2, 2, 2, 0, 0, 0, 20, 21, 4, 2, 2, 2, 0, 0, 0, 7, 8,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 24, 2, 2, 2, 0, 0, 0,
- 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 4, 2, 2, 2, 0, 0,
- 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 13, 14, 4, 2, 2,
- 2, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 15, 16,
- 4, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2,
- 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0,
- 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
- 0, 0, 2, 2, 2, 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, 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, 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, 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, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 2, 2, 0, 0, 0, 7, 8, 4, 2, 2, 2, 0, 0, 0, 7, 8, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 2, 2, 0, 0, 0, 7, 8, 4, 2, 2, 2, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 13, 14, 4, 2, 2, 2, 0, 0, 0, 15, 16, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 15, 16, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 25,
- 26, 31, 25, 26, 31, 3, 3, 3, 25, 26, 31, 25, 26, 31, 3, 3, 3, 1, 1, 1, 25,
- 26, 31, 3, 3, 3, 25, 26, 11, 25, 26, 11, 3, 3, 3, 25, 26, 11, 25, 26, 11, 3,
- 3, 3, 1, 1, 1, 25, 26, 11, 3, 3, 3, 32, 33, 11, 32, 33, 11, 3, 3, 3, 32, 33,
- 11, 32, 33, 11, 3, 3, 3, 1, 1, 1, 32, 33, 11, 3, 3, 3, 44, 45, 11, 36, 37,
- 11, 3, 3, 3, 44, 45, 11, 36, 37, 11, 3, 3, 3, 1, 1, 1, 36, 37, 11, 3, 3, 3,
- 1, 1, 1, 29, 30, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 46,
- 3, 3, 3, 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1,
- 29, 30, 11, 3, 3, 3, 1, 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 1, 1, 38, 39, 11, 3, 3, 3, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 3, 3, 1, 1, 1, 40, 41, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 25, 26, 31, 25, 26, 31, 3,
- 3, 3, 25, 26, 31, 25, 26, 31, 3, 3, 3, 1, 1, 1, 25, 26, 31, 3, 3, 3, 25, 26,
- 11, 25, 26, 11, 3, 3, 3, 25, 26, 11, 25, 26, 11, 3, 3, 3, 1, 1, 1, 25, 26,
- 11, 3, 3, 3, 32, 33, 11, 32, 33, 11, 3, 3, 3, 32, 33, 11, 32, 33, 11, 3, 3,
- 3, 1, 1, 1, 32, 33, 11, 3, 3, 3, 44, 45, 11, 36, 37, 11, 3, 3, 3, 44, 45, 11,
- 36, 37, 11, 3, 3, 3, 1, 1, 1, 36, 37, 11, 3, 3, 3, 1, 1, 1, 29, 30, 46, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 46, 3, 3, 3, 1, 1, 1, 29, 30,
- 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 11, 3, 3, 3, 1, 1,
- 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 38, 39, 11, 3, 3,
- 3, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 40, 41,
- 11, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1,
- 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1,
- 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 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,
+ 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,
+ 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,
+ 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,
+ 1, 2, 2, 2, 2, 2, 2, 24, 25, 31, 24, 25, 31, 2, 2, 2, 24, 25, 31, 24, 25, 31,
+ 2, 2, 2, 1, 1, 1, 24, 25, 31, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2, 2, 24,
+ 25, 11, 24, 25, 11, 2, 2, 2, 1, 1, 1, 24, 25, 11, 2, 2, 2, 32, 33, 11, 32,
+ 33, 11, 2, 2, 2, 32, 33, 11, 32, 33, 11, 2, 2, 2, 1, 1, 1, 32, 33, 11, 2, 2,
+ 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 1, 1, 1,
+ 36, 37, 11, 2, 2, 2, 1, 1, 1, 29, 30, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 1, 1, 1, 29, 30, 46, 2, 2, 2, 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1, 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 2, 2, 1, 1, 1, 38, 39, 11, 2, 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 31, 24, 25, 31, 2, 2, 2, 24, 25, 31, 24, 25, 31, 2, 2, 2, 1, 1, 1, 24, 25,
+ 31, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2, 2, 24, 25, 11, 24, 25, 11, 2, 2,
+ 2, 1, 1, 1, 24, 25, 11, 2, 2, 2, 32, 33, 11, 32, 33, 11, 2, 2, 2, 32, 33, 11,
+ 32, 33, 11, 2, 2, 2, 1, 1, 1, 32, 33, 11, 2, 2, 2, 44, 45, 11, 36, 37, 11, 2,
+ 2, 2, 44, 45, 11, 36, 37, 11, 2, 2, 2, 1, 1, 1, 36, 37, 11, 2, 2, 2, 1, 1, 1,
+ 29, 30, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 46, 2, 2, 2,
+ 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11,
+ 2, 2, 2, 1, 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
+ 38, 39, 11, 2, 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
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,
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,
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,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 11, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 11, 3, 3, 3, 1, 1, 1, 29, 30, 11, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 29, 30, 11, 3, 3, 3, 1, 1, 1, 38, 39, 11,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 38, 39, 11, 3, 3, 3, 1, 1, 1,
- 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 40, 41, 11, 17, 18,
- 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19,
- 0, 0, 0, 17, 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4,
- 17, 18, 4, 17, 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4,
- 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47, 48, 4,
- 42, 43, 4, 34, 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0, 0, 0,
- 34, 35, 4, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6,
- 12, 0, 0, 0, 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, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4,
- 9, 10, 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22,
- 23, 4, 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 24, 0, 0,
- 0, 7, 8, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 24, 0, 0, 0, 7, 8, 24, 7, 8, 4,
- 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,
- 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13,
- 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4,
- 0, 0, 0, 15, 16, 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6,
- 19, 5, 6, 19, 0, 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, 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4,
- 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20,
- 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6,
+ 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,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1, 1, 1, 29,
+ 30, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 29, 30, 11, 2, 2, 2, 1,
+ 1, 1, 38, 39, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 38, 39, 11, 2,
+ 2, 2, 1, 1, 1, 40, 41, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 40,
+ 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,
+ 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,
+ 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,
+ 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,
+ 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 5, 6, 12, 5, 6, 12, 3, 3, 3, 5, 6, 12, 5, 6,
+ 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,
+ 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,
+ 10, 4, 9, 10, 4, 3, 3, 3, 0, 0, 0, 9, 10, 4, 3, 3, 3, 22, 23, 4, 20, 21, 4,
+ 3, 3, 3, 22, 23, 4, 20, 21, 4, 3, 3, 3, 0, 0, 0, 20, 21, 4, 3, 3, 3, 0, 0, 0,
+ 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,
+ 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,
+ 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 5, 6, 12, 5, 6, 12, 3, 3, 3, 5, 6, 12, 5, 6,
+ 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,
+ 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,
+ 10, 4, 9, 10, 4, 3, 3, 3, 0, 0, 0, 9, 10, 4, 3, 3, 3, 22, 23, 4, 20, 21, 4,
+ 3, 3, 3, 22, 23, 4, 20, 21, 4, 3, 3, 3, 0, 0, 0, 20, 21, 4, 3, 3, 3, 0, 0, 0,
+ 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,
+ 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,
+ 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 13, 14, 4, 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, 16, 4, 17, 18, 19, 17, 18,
+ 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 0, 0, 0, 17,
+ 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17,
+ 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27,
+ 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47, 48, 4, 42, 43, 4, 34,
+ 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0, 0, 0, 34, 35, 4, 5, 6,
12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 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, 0,
0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23,
- 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 24, 0, 0, 0, 7, 8, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 24, 0, 0, 0, 7, 8, 24, 7, 8, 4, 0, 0, 0, 7, 8,
+ 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0,
+ 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,
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,
13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16,
4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16,
- 4, 7, 8, 4, 0, 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, 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, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4,
- 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 0,
+ 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,
+ 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10,
+ 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4,
+ 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6, 12, 5, 6, 12, 5,
+ 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 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, 0, 0, 5, 6, 4, 9, 10,
+ 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9,
+ 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20,
+ 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0, 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, 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, 13, 14, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
+ 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 7, 8, 4, 0,
+ 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,
+ 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,
+ 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13,
+ 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4,
+ 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,
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,
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,
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,
- 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13,
- 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4,
- 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4,
- 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17,
- 18, 19, 0, 0, 0, 17, 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17,
- 18, 4, 17, 18, 4, 17, 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27,
- 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47,
- 48, 4, 42, 43, 4, 34, 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0,
- 0, 0, 34, 35, 4, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12,
- 5, 6, 12, 0, 0, 0, 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, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
- 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21,
- 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 24,
- 0, 0, 0, 7, 8, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 24, 0, 0, 0, 7, 8, 24, 7,
- 8, 4, 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, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0,
- 13, 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16,
- 4, 0, 0, 0, 15, 16, 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5,
- 6, 19, 5, 6, 19, 0, 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, 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10,
- 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20,
- 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6,
- 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 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, 0,
- 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
+ 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,
+ 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,
+ 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
+ 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 17, 18, 19,
+ 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 17, 18, 19, 0, 0,
+ 0, 17, 18, 19, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18, 4, 17, 18,
+ 4, 17, 18, 4, 0, 0, 0, 17, 18, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4, 27, 28, 4,
+ 27, 28, 4, 27, 28, 4, 27, 28, 4, 0, 0, 0, 27, 28, 4, 47, 48, 4, 42, 43, 4,
+ 34, 35, 4, 42, 43, 4, 42, 43, 4, 34, 35, 4, 34, 35, 4, 0, 0, 0, 34, 35, 4, 5,
+ 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0,
+ 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,
+ 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9,
10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23,
- 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 24, 0, 0, 0, 7, 8, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 24, 0, 0, 0, 7, 8, 24, 7, 8, 4, 0, 0, 0, 7, 8,
+ 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0,
+ 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,
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,
13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16,
4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16,
- 4, 7, 8, 4, 0, 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, 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, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4,
- 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 5, 6, 19, 0,
+ 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,
+ 4, 0, 0, 0, 5, 6, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10,
+ 4, 9, 10, 4, 0, 0, 0, 9, 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4,
+ 22, 23, 4, 20, 21, 4, 20, 21, 4, 0, 0, 0, 20, 21, 4, 5, 6, 12, 5, 6, 12, 5,
+ 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 5, 6, 12, 0, 0, 0, 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, 0, 0, 5, 6, 4, 9, 10,
+ 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 9, 10, 4, 0, 0, 0, 9,
+ 10, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 22, 23, 4, 22, 23, 4, 20, 21, 4, 20,
+ 21, 4, 0, 0, 0, 20, 21, 4, 7, 8, 26, 0, 0, 0, 7, 8, 26, 0, 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, 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, 13, 14, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
+ 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4, 7, 8, 4, 0,
+ 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,
+ 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,
+ 14, 4, 0, 0, 0, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13,
+ 14, 4, 15, 16, 4, 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4,
+ 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,
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,
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,
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,
- 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13,
- 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4,
- 0, 0, 0, 15, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4
+ 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,
+ 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,
+ 0, 0, 0, 0, 7, 8, 4, 0, 0, 0, 7, 8, 4, 13, 14, 4, 0, 0, 0, 13, 14, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 4, 0, 0, 0, 13, 14, 4, 15, 16, 4, 0, 0, 0, 15,
+ 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 4, 0, 0, 0, 15, 16, 4
};
static size_t ScoreTqReqTimeoutPriorityInherit_Scope(
@@ -1997,11 +2021,11 @@ static void ScoreTqReqTimeoutPriorityInherit_TestVariant(
ScoreTqReqTimeoutPriorityInherit_Context *ctx
)
{
- ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Prepare(
+ ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Prepare(
ctx,
ctx->Map.pcs[ 0 ]
);
- ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_Prepare(
+ ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_Prepare(
ctx,
ctx->Map.pcs[ 1 ]
);
@@ -2062,13 +2086,13 @@ void ScoreTqReqTimeoutPriorityInherit_Run( TQContext *tq_ctx )
ctx->Map.index = 0;
for (
- ctx->Map.pci[ 0 ] = ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Home;
- ctx->Map.pci[ 0 ] < ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_NA;
+ ctx->Map.pci[ 0 ] = ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Home;
+ ctx->Map.pci[ 0 ] < ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_NA;
++ctx->Map.pci[ 0 ]
) {
for (
- ctx->Map.pci[ 1 ] = ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_Yes;
- ctx->Map.pci[ 1 ] < ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_NA;
+ ctx->Map.pci[ 1 ] = ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_One;
+ ctx->Map.pci[ 1 ] < ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_NA;
++ctx->Map.pci[ 1 ]
) {
for (
diff --git a/testsuites/validation/tr-tq-timeout-priority-inherit.h b/testsuites/validation/tr-tq-timeout-priority-inherit.h
index 01b19bb0b2..a75665f659 100644
--- a/testsuites/validation/tr-tq-timeout-priority-inherit.h
+++ b/testsuites/validation/tr-tq-timeout-priority-inherit.h
@@ -64,16 +64,16 @@ extern "C" {
*/
typedef enum {
- ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Home,
- ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_Helping,
- ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler_NA
-} ScoreTqReqTimeoutPriorityInherit_Pre_Scheduler;
+ ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Home,
+ ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_Helping,
+ ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler_NA
+} ScoreTqReqTimeoutPriorityInherit_Pre_HomeScheduler;
typedef enum {
- ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_Yes,
- ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_No,
- ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler_NA
-} ScoreTqReqTimeoutPriorityInherit_Pre_OtherScheduler;
+ ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_One,
+ ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_More,
+ ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler_NA
+} ScoreTqReqTimeoutPriorityInherit_Pre_EligibleScheduler;
typedef enum {
ScoreTqReqTimeoutPriorityInherit_Pre_Queue_Only,