1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #undef NDEBUG
- #include <stdlib.h>
- #include <assert.h>
- #include <string.h>
- static void my_pointer_task (const int *x, char a, long long *y, int b)
- __attribute__ ((task));
- static int implementations_called;
- static const int pointer_arg1[] = { 42, 1, 2, 3, 4, 5 };
- static long long *pointer_arg2;
- static void
- my_pointer_task (const int *x, char a, long long *y, int b)
- {
- implementations_called |= STARPU_CPU;
- assert (x == pointer_arg1);
- assert (y == pointer_arg2);
- assert (a == 'S');
- assert (b == 42);
- }
- int
- main (int argc, char *argv[])
- {
- #define COUNT 100
- pointer_arg2 = malloc (COUNT * sizeof *pointer_arg2);
- memset (pointer_arg2, 0x77, COUNT * sizeof *pointer_arg2);
- #pragma starpu initialize
-
- #pragma starpu register pointer_arg1
- #pragma starpu register pointer_arg2 COUNT
-
- my_pointer_task (pointer_arg1, 'S', pointer_arg2, 42);
- #pragma starpu wait
- assert (implementations_called == STARPU_CPU);
- implementations_called = 0;
-
- my_pointer_task (pointer_arg1, (long long) 'S', pointer_arg2, (char) 42);
- #pragma starpu wait
- assert (implementations_called == STARPU_CPU);
- starpu_shutdown ();
- free (pointer_arg2);
- return EXIT_SUCCESS;
- #undef COUNT
- }
|