summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/smpatomic05/tasks.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/smptests/smpatomic05/tasks.c')
-rw-r--r--testsuites/smptests/smpatomic05/tasks.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/testsuites/smptests/smpatomic05/tasks.c b/testsuites/smptests/smpatomic05/tasks.c
deleted file mode 100644
index cf41cc1d64..0000000000
--- a/testsuites/smptests/smpatomic05/tasks.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2012 Deng Hengyi.
- *
- * This test case is to test atomic and operation.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "system.h"
-
-#include <stdlib.h>
-#include <rtems/rtems/atomic.h>
-
-#define TEST_REPEAT 1000
-
-#define ATOMIC_FETCH_AND_NO_BARRIER(NAME, TYPE, R_TYPE, cpuid, mem_bar)\
-{ \
- Atomic_##TYPE t; \
- R_TYPE a; \
- R_TYPE b; \
- R_TYPE c; \
- unsigned int i; \
- for (i = 0; i < TEST_REPEAT; i++){ \
- a = (R_TYPE)(rand() % ((R_TYPE)-1 / 2)); \
- b = (R_TYPE)(rand() % ((R_TYPE)-1 / 2)); \
- _Atomic_Store_##NAME(&t, a, ATOMIC_ORDER_RELEASE); \
- _Atomic_Fetch_and_##NAME(&t, b, mem_bar); \
- c = _Atomic_Load_##NAME(&t, ATOMIC_ORDER_ACQUIRE); \
- rtems_test_assert(c == (R_TYPE)(a & b)); \
- } \
- locked_printf("\nCPU%d Atomic_Fetch_and_" #NAME ": SUCCESS\n", cpuid); \
-}
-
-rtems_task Test_task(
- rtems_task_argument argument
- )
-{
- uint32_t cpu_num;
- char name[5];
- char *p;
-
- /* Get the task name */
- p = rtems_object_get_name( RTEMS_SELF, 5, name );
- rtems_test_assert( p != NULL );
-
- /* Get the CPU Number */
- cpu_num = rtems_smp_get_current_processor();
-
- /* Print that the task is up and running. */
- /* test relaxed barrier */
- ATOMIC_FETCH_AND_NO_BARRIER(ulong, Ulong, unsigned long, cpu_num, ATOMIC_ORDER_RELAXED);
-
- ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, cpu_num, ATOMIC_ORDER_RELAXED);
-
- /* test acquire barrier */
- ATOMIC_FETCH_AND_NO_BARRIER(ulong, Ulong, unsigned long, cpu_num, ATOMIC_ORDER_ACQUIRE);
-
- ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, cpu_num, ATOMIC_ORDER_ACQUIRE);
-
- /* test release barrier */
- ATOMIC_FETCH_AND_NO_BARRIER(ulong, Ulong, unsigned long, cpu_num, ATOMIC_ORDER_RELEASE);
-
- ATOMIC_FETCH_AND_NO_BARRIER(ptr, Pointer, uintptr_t, cpu_num, ATOMIC_ORDER_RELEASE);
-
-// ATOMIC_FETCH_AND_NO_BARRIER(64, cpu_num);
-
- /* Set the flag that the task is up and running */
- TaskRan[cpu_num] = true;
-
- /* Drop into a loop which will keep this task on
- * running on the cpu.
- */
- while(1);
-}