summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-05-19 09:54:52 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-12 14:01:24 +0200
commit932c9bb9b94de363de5547e43c2e7f169f8d2732 (patch)
treee272f20d509d8814c279f013dd1db48f927a5df6
parentbb751e2ea1d795c54ae14284fef46e21cf3f957c (diff)
tx-support
-rw-r--r--testsuites/validation/ts-default.h6
-rw-r--r--testsuites/validation/tx-support.c22
-rw-r--r--testsuites/validation/tx-support.h8
3 files changed, 36 insertions, 0 deletions
diff --git a/testsuites/validation/ts-default.h b/testsuites/validation/ts-default.h
index fddca955e1..74854afef3 100644
--- a/testsuites/validation/ts-default.h
+++ b/testsuites/validation/ts-default.h
@@ -42,6 +42,7 @@
#include <rtems/test-scheduler.h>
#include "ts-config.h"
+#include "tx-support.h"
#define MAX_TLS_SIZE RTEMS_ALIGN_UP( 64, RTEMS_TASK_STORAGE_ALIGNMENT )
@@ -180,6 +181,8 @@ static void task_stack_deallocate( void *stack )
#define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+#define CONFIGURE_INITIAL_EXTENSIONS { .fatal = FatalInitialExtension }
+
#if defined( RTEMS_SMP ) && \
( CONFIGURE_MAXIMUM_PROCESSORS == 4 || CONFIGURE_MAXIMUM_PROCESSORS == 5 )
@@ -190,6 +193,9 @@ T_scheduler_operations[ CONFIGURE_MAXIMUM_PROCESSORS ] = {
SCHEDULER_EDF_SMP_ENTRY_POINTS,
SCHEDULER_EDF_SMP_ENTRY_POINTS,
SCHEDULER_EDF_SMP_ENTRY_POINTS,
+#if CONFIGURE_MAXIMUM_PROCESSORS >= 5
+ SCHEDULER_EDF_SMP_ENTRY_POINTS,
+#endif
SCHEDULER_EDF_SMP_ENTRY_POINTS
};
diff --git a/testsuites/validation/tx-support.c b/testsuites/validation/tx-support.c
index c6f66c5c5f..099890dbbc 100644
--- a/testsuites/validation/tx-support.c
+++ b/testsuites/validation/tx-support.c
@@ -524,3 +524,25 @@ void FinalClockTick( void )
#endif
_Thread_Dispatch_enable( cpu_self );
}
+
+static rtems_fatal_extension fatal_extension;
+
+void FatalInitialExtension(
+ rtems_fatal_source source,
+ bool always_set_to_false,
+ rtems_fatal_code code
+)
+{
+ rtems_fatal_extension fatal;
+
+ fatal = fatal_extension;
+
+ if ( fatal != NULL ) {
+ ( *fatal )( source, always_set_to_false, code );
+ }
+}
+
+void SetFatalExtension( rtems_fatal_extension fatal )
+{
+ fatal_extension = fatal;
+}
diff --git a/testsuites/validation/tx-support.h b/testsuites/validation/tx-support.h
index 30bec43b43..163d6930c2 100644
--- a/testsuites/validation/tx-support.h
+++ b/testsuites/validation/tx-support.h
@@ -386,6 +386,14 @@ Timer_States GetTimerState( rtems_id id );
*/
void UnsetClock( void );
+void FatalInitialExtension(
+ rtems_fatal_source source,
+ bool always_set_to_false,
+ rtems_fatal_code code
+);
+
+void SetFatalExtension( rtems_fatal_extension fatal );
+
/** @} */
#ifdef __cplusplus