summaryrefslogtreecommitdiff
path: root/testsuites/validation/tc-sem-timeout.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/validation/tc-sem-timeout.c')
-rw-r--r--testsuites/validation/tc-sem-timeout.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/testsuites/validation/tc-sem-timeout.c b/testsuites/validation/tc-sem-timeout.c
index cdef96181e..a150d067d2 100644
--- a/testsuites/validation/tc-sem-timeout.c
+++ b/testsuites/validation/tc-sem-timeout.c
@@ -55,7 +55,6 @@
#include <rtems.h>
#include <string.h>
-#include "tr-tq-timeout-mrsp.h"
#include "tr-tq-timeout-priority-inherit.h"
#include "tr-tq-timeout.h"
#include "tx-support.h"
@@ -169,6 +168,10 @@ static const char * const * const RtemsSemReqTimeout_PreDesc[] = {
NULL
};
+#if defined(RTEMS_SMP)
+#include "tr-tq-timeout-mrsp.h"
+#endif
+
static void RtemsSemReqTimeout_Pre_Class_Prepare(
RtemsSemReqTimeout_Context *ctx,
RtemsSemReqTimeout_Pre_Class state
@@ -226,7 +229,11 @@ static void RtemsSemReqTimeout_Pre_Class_Prepare(
*/
ctx->attribute_set |= RTEMS_BINARY_SEMAPHORE |
RTEMS_MULTIPROCESSOR_RESOURCE_SHARING;
+ #if defined(RTEMS_SMP)
ctx->tq_ctx.enqueue_variant = TQ_ENQUEUE_STICKY;
+ #else
+ ctx->tq_ctx.enqueue_variant = TQ_ENQUEUE_BLOCKS;
+ #endif
break;
}
@@ -285,8 +292,12 @@ static void RtemsSemReqTimeout_Post_Action_Check(
* The semaphore obtain timeout actions shall be done as specified by
* spec:/score/tq/req/timeout-mrsp.
*/
+ #if defined(RTEMS_SMP)
ctx->tq_ctx.wait = TQ_WAIT_TIMED;
ScoreTqReqTimeoutMrsp_Run( &ctx->tq_ctx );
+ #else
+ T_unreachable();
+ #endif
break;
}
@@ -374,10 +385,10 @@ RtemsSemReqTimeout_Entries[] = {
{ 0, 0, 0, RtemsSemReqTimeout_Post_Action_Timeout },
{ 1, 0, 0, RtemsSemReqTimeout_Post_Action_NA },
{ 0, 0, 0, RtemsSemReqTimeout_Post_Action_TimeoutPriorityInherit },
-#if !defined(RTEMS_SMP)
- { 1, 0, 0, RtemsSemReqTimeout_Post_Action_NA }
-#else
+#if defined(RTEMS_SMP)
{ 0, 0, 0, RtemsSemReqTimeout_Post_Action_TimeoutMrsP }
+#else
+ { 0, 0, 0, RtemsSemReqTimeout_Post_Action_Timeout }
#endif
};