Selaa lähdekoodia

Remove implementation array terminator in tests, examples, and documentation, since it is not actually used

Samuel Thibault 10 vuotta sitten
vanhempi
commit
6757bca1b5
100 muutettua tiedostoa jossa 383 lisäystä ja 398 poistoa
  1. 5 5
      doc/doxygen/chapters/02basic_examples.doxy
  2. 1 1
      doc/doxygen/chapters/05check_list_performance.doxy
  3. 19 19
      doc/doxygen/chapters/06tasks.doxy
  4. 7 7
      doc/doxygen/chapters/07data_management.doxy
  5. 2 2
      doc/doxygen/chapters/12online_performance_tools.doxy
  6. 5 8
      doc/doxygen/chapters/api/codelet_and_tasks.doxy
  7. 2 2
      doc/doxygen/chapters/code/forkmode.c
  8. 3 3
      doc/doxygen/chapters/code/multiformat.c
  9. 4 4
      doc/doxygen/chapters/code/simgrid.c
  10. 4 4
      doc/doxygen/chapters/code/vector_scal_c.c
  11. 1 1
      doc/tutorial/hello_world.c
  12. 1 2
      doc/tutorial/hello_world_msvc.c
  13. 3 3
      doc/tutorial/vector_scal.c
  14. 3 3
      doc/tutorial/vector_scal_task_insert.c
  15. 2 2
      examples/audio/starpu_audio_processing.c
  16. 3 3
      examples/axpy/axpy.c
  17. 2 2
      examples/basic_examples/dynamic_handles.c
  18. 2 2
      examples/basic_examples/mult.c
  19. 3 3
      examples/basic_examples/multiformat.c
  20. 4 4
      examples/basic_examples/multiformat_conversion_codelets.c
  21. 2 2
      examples/basic_examples/vector_scal.c
  22. 3 3
      examples/basic_examples/vector_scal_c.c
  23. 1 1
      examples/binary/binary.c
  24. 1 1
      examples/callback/callback.c
  25. 1 1
      examples/callback/prologue.c
  26. 18 18
      examples/cg/cg_kernels.c
  27. 9 9
      examples/cholesky/cholesky_kernels.c
  28. 4 4
      examples/filters/custom_mf/custom_conversion_codelets.c
  29. 3 3
      examples/filters/custom_mf/custom_mf_filter.c
  30. 4 4
      examples/filters/fblock.c
  31. 2 2
      examples/filters/fmatrix.c
  32. 2 2
      examples/filters/fvector.c
  33. 3 3
      examples/filters/shadow.c
  34. 3 3
      examples/filters/shadow2d.c
  35. 3 3
      examples/filters/shadow3d.c
  36. 1 1
      examples/gl_interop/gl_interop.c
  37. 1 1
      examples/gl_interop/gl_interop_idle.c
  38. 8 8
      examples/heat/dw_factolu.c
  39. 8 8
      examples/heat/dw_factolu_grain.c
  40. 8 8
      examples/heat/dw_factolu_tag.c
  41. 4 4
      examples/incrementer/incrementer.c
  42. 2 2
      examples/interface/complex.c
  43. 4 4
      examples/interface/complex_codelet.h
  44. 18 18
      examples/lu/xlu_kernels.c
  45. 4 4
      examples/mandelbrot/mandelbrot.c
  46. 2 2
      examples/mult/xgemm.c
  47. 2 2
      examples/openmp/vector_scal_omp.c
  48. 3 3
      examples/pi/pi.c
  49. 12 12
      examples/pi/pi_redux.c
  50. 5 5
      examples/pipeline/pipeline.c
  51. 2 2
      examples/ppm_downscaler/yuv_downscaler.c
  52. 3 3
      examples/profiling/profiling.c
  53. 12 12
      examples/reductions/dot_product.c
  54. 6 6
      examples/reductions/minmax_reduction.c
  55. 3 3
      examples/sched_ctx/dummy_sched_with_ctx.c
  56. 1 3
      examples/sched_ctx/nested_sched_ctxs.c
  57. 2 4
      examples/sched_ctx/parallel_code.c
  58. 4 7
      examples/sched_ctx/sched_ctx.c
  59. 2 3
      examples/sched_ctx/sched_ctx_without_sched_policy.c
  60. 1 3
      examples/sched_ctx/sched_ctx_without_sched_policy_awake.c
  61. 3 3
      examples/scheduler/dummy_sched.c
  62. 2 2
      examples/spmd/vector_scal_spmd.c
  63. 2 2
      examples/spmv/dw_block_spmv.c
  64. 3 3
      examples/spmv/spmv.c
  65. 12 12
      examples/stencil/stencil-kernels.c
  66. 4 4
      examples/stencil/stencil-tasks.c
  67. 6 6
      examples/tag_example/tag_example4.c
  68. 1 1
      examples/top/hello_world_top.c
  69. 1 1
      mpi/examples/complex/mpi_complex.c
  70. 6 6
      mpi/examples/matrix_decomposition/mpi_cholesky_codelets.c
  71. 8 8
      mpi/examples/mpi_lu/pxlu_kernels.c
  72. 1 1
      mpi/examples/stencil/stencil5.c
  73. 6 6
      mpi/src/starpu_mpi_task_insert.c
  74. 3 3
      mpi/tests/callback.c
  75. 1 1
      mpi/tests/insert_task.c
  76. 1 1
      mpi/tests/insert_task_block.c
  77. 1 1
      mpi/tests/insert_task_compute.c
  78. 5 5
      mpi/tests/insert_task_owner.c
  79. 1 1
      mpi/tests/insert_task_owner2.c
  80. 1 1
      mpi/tests/insert_task_owner_data.c
  81. 1 1
      mpi/tests/insert_task_recv_cache.c
  82. 1 1
      mpi/tests/insert_task_sent_cache.c
  83. 4 4
      mpi/tests/mpi_reduction.c
  84. 1 1
      mpi/tests/mpi_scatter_gather.c
  85. 2 2
      mpi/tests/ring.c
  86. 2 2
      mpi/tests/ring_async.c
  87. 2 2
      mpi/tests/ring_async_implicit.c
  88. 6 6
      sc_hypervisor/examples/cholesky/cholesky_grain_tag.c
  89. 6 6
      sc_hypervisor/examples/cholesky/cholesky_implicit.c
  90. 6 6
      sc_hypervisor/examples/cholesky/cholesky_tag.c
  91. 6 6
      sc_hypervisor/examples/cholesky/cholesky_tile_tag.c
  92. 2 2
      socl/src/cl_enqueuecopybuffer.c
  93. 2 2
      socl/src/cl_enqueuereadbuffer.c
  94. 4 4
      socl/src/cl_enqueuewritebuffer.c
  95. 1 2
      socl/src/command.c
  96. 1 1
      src/datawizard/filters.c
  97. 4 4
      src/datawizard/malloc.c
  98. 6 6
      src/util/execute_on_all.c
  99. 5 5
      src/util/starpu_data_cpy.c
  100. 0 0
      starpufft/src/starpufftx1d.c

+ 5 - 5
doc/doxygen/chapters/02basic_examples.doxy

@@ -92,7 +92,7 @@ void cpu_func(void *buffers[], void *cl_arg)
 
 struct starpu_codelet cl =
 {
-    .cpu_funcs = { cpu_func, NULL },
+    .cpu_funcs = { cpu_func },
     .nbuffers = 0
 };
 \endcode
@@ -297,8 +297,8 @@ Callback function (arg 42)
 struct starpu_codelet cl =
 {
     .where = STARPU_CPU,
-    .cpu_funcs = { cpu_func, NULL },
-    .cpu_funcs_name = { "cpu_func", NULL },
+    .cpu_funcs = { cpu_func },
+    .cpu_funcs_name = { "cpu_func" },
      .nbuffers = 0
 };
 \endcode
@@ -579,8 +579,8 @@ void scal_cpu_func(void *buffers[], void *cl_arg)
 
 struct starpu_codelet cl =
 {
-    .cpu_funcs = { scal_cpu_func, NULL },
-    .cpu_funcs_name = { "scal_cpu_func", NULL },
+    .cpu_funcs = { scal_cpu_func },
+    .cpu_funcs_name = { "scal_cpu_func" },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };

+ 1 - 1
doc/doxygen/chapters/05check_list_performance.doxy

@@ -184,7 +184,7 @@ static struct starpu_perfmodel perf_model = {
 };
 
 struct starpu_codelet cl = {
-    .cuda_funcs = { cuda_func1, cuda_func2, NULL },
+    .cuda_funcs = { cuda_func1, cuda_func2 },
     .nbuffers = 1,
     .modes = {STARPU_W},
     .model = &perf_model

+ 19 - 19
doc/doxygen/chapters/06tasks.doxy

@@ -62,10 +62,10 @@ enum starpu_data_access_mode modes[STARPU_NMAXBUFS+1] = {
 
 struct starpu_codelet dummy_big_cl =
 {
-	.cuda_funcs = { dummy_big_kernel, NULL },
-	.opencl_funcs = { dummy_big_kernel, NULL },
-	.cpu_funcs = { dummy_big_kernel, NULL },
-	.cpu_funcs_name = { "dummy_big_kernel", NULL },
+	.cuda_funcs = { dummy_big_kernel },
+	.opencl_funcs = { dummy_big_kernel },
+	.cpu_funcs = { dummy_big_kernel },
+	.cpu_funcs_name = { "dummy_big_kernel" },
 	.nbuffers = STARPU_NMAXBUFS+1,
 	.dyn_modes = modes
 };
@@ -124,8 +124,8 @@ void scal_sse_func(void *buffers[], void *cl_arg)
 
 \code{.c}
 struct starpu_codelet cl = {
-    .cpu_funcs = { scal_cpu_func, scal_sse_func, NULL },
-    .cpu_funcs_name = { "scal_cpu_func", "scal_sse_func", NULL },
+    .cpu_funcs = { scal_cpu_func, scal_sse_func },
+    .cpu_funcs_name = { "scal_cpu_func", "scal_sse_func" },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };
@@ -160,9 +160,9 @@ static int can_execute(unsigned workerid, struct starpu_task *task, unsigned nim
 
 struct starpu_codelet cl = {
     .can_execute = can_execute,
-    .cpu_funcs = { cpu_func, NULL },
-    .cpu_funcs_name = { "cpu_func", NULL },
-    .cuda_funcs = { gpu_func, NULL }
+    .cpu_funcs = { cpu_func },
+    .cpu_funcs_name = { "cpu_func" },
+    .cuda_funcs = { gpu_func }
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };
@@ -205,9 +205,9 @@ static int can_execute(unsigned workerid, struct starpu_task *task, unsigned nim
 
 struct starpu_codelet cl = {
     .can_execute = can_execute,
-    .cpu_funcs = { cpu_func, NULL },
-    .cpu_funcs_name = { "cpu_func", NULL },
-    .cuda_funcs = { scal_gpu_13, scal_gpu_20, NULL },
+    .cpu_funcs = { cpu_func },
+    .cpu_funcs_name = { "cpu_func" },
+    .cuda_funcs = { scal_gpu_13, scal_gpu_20 },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };
@@ -240,9 +240,9 @@ static int can_execute(unsigned workerid, struct starpu_task *task, unsigned nim
 
 struct starpu_codelet cl = {
     .can_execute = can_execute,
-    .cpu_funcs = { cpu_func, NULL },
-    .cpu_funcs_name = { "cpu_func", NULL },
-    .cuda_funcs = { potrf_gpu_generic, potrf_gpu_1024, NULL },
+    .cpu_funcs = { cpu_func },
+    .cpu_funcs_name = { "cpu_func" },
+    .cuda_funcs = { potrf_gpu_generic, potrf_gpu_1024 },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };
@@ -272,8 +272,8 @@ void func_cpu(void *descr[], void *_args)
 }
 
 struct starpu_codelet mycodelet = {
-        .cpu_funcs = { func_cpu, NULL },
-        .cpu_funcs_name = { "func_cpu", NULL },
+        .cpu_funcs = { func_cpu },
+        .cpu_funcs_name = { "func_cpu" },
         .nbuffers = 2,
         .modes = { STARPU_RW, STARPU_RW }
 };
@@ -408,8 +408,8 @@ static struct starpu_codelet cl =
     .modes = { STARPU_RW },
     .type = STARPU_SPMD,
     .max_parallelism = INT_MAX,
-    .cpu_funcs = { func, NULL },
-    .cpu_funcs_name = { "func", NULL },
+    .cpu_funcs = { func },
+    .cpu_funcs_name = { "func" },
     .nbuffers = 1,
 }
 \endcode

+ 7 - 7
doc/doxygen/chapters/07data_management.doxy

@@ -208,9 +208,9 @@ the codelets for initialization and reduction:
 \code{.c}
 struct starpu_codelet bzero_variable_cl =
 {
-        .cpu_funcs = { bzero_variable_cpu, NULL },
-        .cpu_funcs_name = { "bzero_variable_cpu", NULL },
-        .cuda_funcs = { bzero_variable_cuda, NULL },
+        .cpu_funcs = { bzero_variable_cpu },
+        .cpu_funcs_name = { "bzero_variable_cpu" },
+        .cuda_funcs = { bzero_variable_cuda },
         .nbuffers = 1,
 }
 
@@ -231,9 +231,9 @@ static void accumulate_variable_cuda(void *descr[], void *cl_arg)
 
 struct starpu_codelet accumulate_variable_cl =
 {
-        .cpu_funcs = { accumulate_variable_cpu, NULL },
-        .cpu_funcs_name = { "accumulate_variable_cpu", NULL },
-        .cuda_funcs = { accumulate_variable_cuda, NULL },
+        .cpu_funcs = { accumulate_variable_cpu },
+        .cpu_funcs_name = { "accumulate_variable_cpu" },
+        .cuda_funcs = { accumulate_variable_cuda },
         .nbuffers = 1,
 }
 \endcode
@@ -524,7 +524,7 @@ where the task will be executed. For instance, with the following codelet:
 \code{.c}
 struct starpu_codelet cl =
 {
-	.cuda_funcs = { kernel, NULL },
+	.cuda_funcs = { kernel },
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_RW},
 	.specific_nodes = 1,

+ 2 - 2
doc/doxygen/chapters/12online_performance_tools.doxy

@@ -298,8 +298,8 @@ static struct starpu_perfmodel mult_perf_model = {
 };
 
 struct starpu_codelet cl = {
-    .cpu_funcs = { cpu_mult, NULL },
-    .cpu_funcs_name = { "cpu_mult", NULL },
+    .cpu_funcs = { cpu_mult },
+    .cpu_funcs_name = { "cpu_mult" },
     .nbuffers = 3,
     .modes = { STARPU_R, STARPU_R, STARPU_W },
     /* for the scheduling policy to be able to use performance models */

+ 5 - 8
doc/doxygen/chapters/api/codelet_and_tasks.doxy

@@ -204,8 +204,7 @@ the starpu_codelet::opencl_funcs field.
 
 \var starpu_cpu_func_t starpu_codelet::cpu_funcs[STARPU_MAXIMPLEMENTATIONS]
 Optional array of function pointers to the CPU implementations of the
-codelet. It must be terminated by a NULL value. The functions
-prototype must be:
+codelet. The functions prototype must be:
 \code{.c}
 void cpu_func(void *buffers[], void *cl_arg)
 \endcode
@@ -224,7 +223,7 @@ look up the MIC function implementation through its name.
 
 \var starpu_cuda_func_t starpu_codelet::cuda_funcs[STARPU_MAXIMPLEMENTATIONS]
 Optional array of function pointers to the CUDA implementations of the
-codelet. It must be terminated by a NULL value. The functions must be
+codelet. The functions must be
 host-functions written in the CUDA runtime API. Their prototype must
 be:
 \code{.c}
@@ -240,7 +239,7 @@ about CUDA kernel execution, such as asynchronous execution.
 
 \var starpu_opencl_func_t starpu_codelet::opencl_funcs[STARPU_MAXIMPLEMENTATIONS]
 Optional array of function pointers to the OpenCL implementations of
-the codelet. It must be terminated by a NULL value. The functions
+the codelet. The functions
 prototype must be:
 \code{.c}
 void opencl_func(void *buffers[], void *cl_arg)
@@ -256,8 +255,7 @@ about OpenCL kernel execution, such as asynchronous execution.
 
 \var starpu_mic_func_t starpu_codelet::mic_funcs[STARPU_MAXIMPLEMENTATIONS]
 Optional array of function pointers to a function which returns the
-MIC implementation of the codelet. It must be terminated by a NULL
-value. The functions prototype must be:
+MIC implementation of the codelet. The functions prototype must be:
 \code{.c}
 starpu_mic_kernel_t mic_func(struct starpu_codelet *cl, unsigned nimpl)
 \endcode
@@ -269,8 +267,7 @@ simply make a symbol lookup to get the implementation.
 
 \var starpu_scc_func_t starpu_codelet::scc_funcs[STARPU_MAXIMPLEMENTATIONS]
 Optional array of function pointers to a function which returns the
-SCC implementation of the codelet. It must be terminated by a NULL value.
-The functions prototype must be:
+SCC implementation of the codelet. The functions prototype must be:
 \code{.c}
 starpu_scc_kernel_t scc_func(struct starpu_codelet *cl, unsigned nimpl)
 \endcode

+ 2 - 2
doc/doxygen/chapters/code/forkmode.c

@@ -35,8 +35,8 @@ static struct starpu_codelet cl =
     .where = STARPU_CPU,
     .type = STARPU_FORKJOIN,
     .max_parallelism = INT_MAX,
-    .cpu_funcs = {scal_cpu_func, NULL},
-    .cpu_funcs_name = {"scal_cpu_func", NULL},
+    .cpu_funcs = {scal_cpu_func},
+    .cpu_funcs_name = {"scal_cpu_func"},
     .nbuffers = 1,
 };
 //! [To be included. You should update doxygen if you see this text.]

+ 3 - 3
doc/doxygen/chapters/code/multiformat.c

@@ -32,7 +32,7 @@ starpu_data_handle_t handle;
 void cpu_to_opencl_opencl_func(void *buffers[], void *args);
 struct starpu_codelet cpu_to_opencl_cl = {
     .where = STARPU_OPENCL,
-    .opencl_funcs = { cpu_to_opencl_opencl_func, NULL },
+    .opencl_funcs = { cpu_to_opencl_opencl_func },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };
@@ -40,8 +40,8 @@ struct starpu_codelet cpu_to_opencl_cl = {
 void opencl_to_cpu_func(void *buffers[], void *args);
 struct starpu_codelet opencl_to_cpu_cl = {
     .where = STARPU_CPU,
-    .cpu_funcs = { opencl_to_cpu_func, NULL },
-    .cpu_funcs_name = { "opencl_to_cpu_func", NULL },
+    .cpu_funcs = { opencl_to_cpu_func },
+    .cpu_funcs_name = { "opencl_to_cpu_func" },
     .nbuffers = 1,
     .modes = { STARPU_RW }
 };

+ 4 - 4
doc/doxygen/chapters/code/simgrid.c

@@ -18,12 +18,12 @@
 //! [To be included. You should update doxygen if you see this text.]
 static struct starpu_codelet cl11 =
 {
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
-	.cpu_funcs_name = {"chol_cpu_codelet_update_u11", NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
+	.cpu_funcs_name = {"chol_cpu_codelet_update_u11"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},

+ 4 - 4
doc/doxygen/chapters/code/vector_scal_c.c

@@ -35,15 +35,15 @@ extern void scal_opencl_func(void *buffers[], void *_args);
 static struct starpu_codelet cl = {
     .where = STARPU_CPU | STARPU_CUDA | STARPU_OPENCL,
     /* CPU implementation of the codelet */
-    .cpu_funcs = { scal_cpu_func, scal_sse_func, NULL },
-    .cpu_funcs_name = { "scal_cpu_func", "scal_sse_func", NULL },
+    .cpu_funcs = { scal_cpu_func, scal_sse_func },
+    .cpu_funcs_name = { "scal_cpu_func", "scal_sse_func" },
 #ifdef STARPU_USE_CUDA
     /* CUDA implementation of the codelet */
-    .cuda_funcs = { scal_cuda_func, NULL },
+    .cuda_funcs = { scal_cuda_func },
 #endif
 #ifdef STARPU_USE_OPENCL
     /* OpenCL implementation of the codelet */
-    .opencl_funcs = { scal_opencl_func, NULL },
+    .opencl_funcs = { scal_opencl_func },
 #endif
     .nbuffers = 1,
     .modes = { STARPU_RW }

+ 1 - 1
doc/tutorial/hello_world.c

@@ -32,7 +32,7 @@ void cpu_func(void *buffers[], void *cl_arg)
 
 struct starpu_codelet cl =
 {
-	.cpu_funcs = {cpu_func, NULL},
+	.cpu_funcs = {cpu_func},
 	.nbuffers = 0
 };
 

+ 1 - 2
doc/tutorial/hello_world_msvc.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2011  Université de Bordeaux
+ * Copyright (C) 2010-2011, 2014  Université de Bordeaux
  * Copyright (C) 2010-2011, 2013  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -44,7 +44,6 @@ int main(int argc, char **argv)
 
 	starpu_codelet_init(&cl);
 	cl.cpu_funcs[0] = cpu_func;
-	cl.cpu_funcs[1] = NULL;
 	cl.nbuffers = 0;
 
 	/* initialize StarPU */

+ 3 - 3
doc/tutorial/vector_scal.c

@@ -32,14 +32,14 @@ extern void vector_scal_opencl(void *buffers[], void *_args);
 
 static struct starpu_codelet cl = {
 	/* CPU implementation of the codelet */
-	.cpu_funcs = {vector_scal_cpu, NULL},
+	.cpu_funcs = {vector_scal_cpu},
 #ifdef STARPU_USE_CUDA
 	/* CUDA implementation of the codelet */
-	.cuda_funcs = {vector_scal_cuda, NULL},
+	.cuda_funcs = {vector_scal_cuda},
 #endif
 #ifdef STARPU_USE_OPENCL
 	/* OpenCL implementation of the codelet */
-	.opencl_funcs = {vector_scal_opencl, NULL},
+	.opencl_funcs = {vector_scal_opencl},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW}

+ 3 - 3
doc/tutorial/vector_scal_task_insert.c

@@ -32,14 +32,14 @@ extern void vector_scal_opencl(void *buffers[], void *_args);
 
 static struct starpu_codelet cl = {
 	/* CPU implementation of the codelet */
-	.cpu_funcs = {vector_scal_cpu, NULL},
+	.cpu_funcs = {vector_scal_cpu},
 #ifdef STARPU_USE_CUDA
 	/* CUDA implementation of the codelet */
-	.cuda_funcs = {vector_scal_cuda, NULL},
+	.cuda_funcs = {vector_scal_cuda},
 #endif
 #ifdef STARPU_USE_OPENCL
 	/* OpenCL implementation of the codelet */
-	.opencl_funcs = {vector_scal_opencl, NULL},
+	.opencl_funcs = {vector_scal_opencl},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW}

+ 2 - 2
examples/audio/starpu_audio_processing.c

@@ -281,10 +281,10 @@ static struct starpu_codelet band_filter_cl =
 {
 	.modes = { STARPU_RW },
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {band_filter_kernel_gpu, NULL},
+	.cuda_funcs = {band_filter_kernel_gpu},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
-	.cpu_funcs = {band_filter_kernel_cpu, NULL},
+	.cpu_funcs = {band_filter_kernel_cpu},
 	.model = &band_filter_model,
 	.nbuffers = 1
 };

+ 3 - 3
examples/axpy/axpy.c

@@ -79,13 +79,13 @@ extern void axpy_opencl(void *buffers[], void *args);
 
 static struct starpu_codelet axpy_cl =
 {
-	.cpu_funcs = {axpy_cpu, NULL},
+	.cpu_funcs = {axpy_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {axpy_gpu, NULL},
+	.cuda_funcs = {axpy_gpu},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {axpy_opencl, NULL},
+	.opencl_funcs = {axpy_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 2,

+ 2 - 2
examples/basic_examples/dynamic_handles.c

@@ -52,14 +52,14 @@ static void dummy_big_kernel(void *descr[], void *cl_arg)
 
 static struct starpu_codelet dummy_small_cl =
 {
-	.cpu_funcs = {dummy_small_kernel, NULL},
+	.cpu_funcs = {dummy_small_kernel},
 	.modes = {STARPU_RW},
 	.nbuffers = 1
 };
 
 struct starpu_codelet dummy_big_cl =
 {
-	.cpu_funcs = {dummy_big_kernel, NULL},
+	.cpu_funcs = {dummy_big_kernel},
 	.nbuffers = STARPU_NMAXBUFS+1
 };
 

+ 2 - 2
examples/basic_examples/mult.c

@@ -262,8 +262,8 @@ static struct starpu_codelet cl =
 {
         /* we can only execute that kernel on a CPU yet */
         /* CPU implementation of the codelet */
-        .cpu_funcs = {cpu_mult, NULL},
-        .cpu_funcs_name = {"cpu_mult", NULL},
+        .cpu_funcs = {cpu_mult},
+        .cpu_funcs_name = {"cpu_mult"},
         /* the codelet manipulates 3 buffers that are managed by the
          * DSM */
         .nbuffers = 3,

+ 3 - 3
examples/basic_examples/multiformat.c

@@ -81,7 +81,7 @@ extern void multiformat_scal_opencl_func(void *buffers[], void *arg);
 #ifdef STARPU_USE_CPU
 static struct starpu_codelet cpu_cl =
 {
-	.cpu_funcs = {multiformat_scal_cpu_func, NULL},
+	.cpu_funcs = {multiformat_scal_cpu_func},
 	.nbuffers = 1,
 	.modes = { STARPU_RW },
 	.name = "codelet_real"
@@ -91,7 +91,7 @@ static struct starpu_codelet cpu_cl =
 #ifdef STARPU_USE_CUDA
 static struct starpu_codelet cuda_cl =
 {
-	.cuda_funcs = { multiformat_scal_cuda_func, NULL },
+	.cuda_funcs = { multiformat_scal_cuda_func },
 	.nbuffers = 1,
 	.modes = { STARPU_RW },
 	.name = "cuda_codelet"
@@ -101,7 +101,7 @@ static struct starpu_codelet cuda_cl =
 #ifdef STARPU_USE_OPENCL
 static struct starpu_codelet opencl_cl =
 {
-	.opencl_funcs = { multiformat_scal_opencl_func, NULL },
+	.opencl_funcs = { multiformat_scal_opencl_func },
 	.nbuffers = 1,
 	.modes = { STARPU_RW },
 	.name = "opencl_codelet"

+ 4 - 4
examples/basic_examples/multiformat_conversion_codelets.c

@@ -36,7 +36,7 @@ void cuda_to_cpu(void *buffers[], void *arg)
 extern void cpu_to_cuda_cuda_func(void *buffers[], void *args);
 struct starpu_codelet cpu_to_cuda_cl =
 {
-	.cuda_funcs = {cpu_to_cuda_cuda_func, NULL},
+	.cuda_funcs = {cpu_to_cuda_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	.nbuffers = 1,
 	.name = "codelet_cpu_to_cuda"
@@ -44,7 +44,7 @@ struct starpu_codelet cpu_to_cuda_cl =
 
 struct starpu_codelet cuda_to_cpu_cl =
 {
-	.cpu_funcs = {cuda_to_cpu, NULL},
+	.cpu_funcs = {cuda_to_cpu},
 	.nbuffers = 1,
 	.name = "codelet_cude_to_cpu"
 };
@@ -68,14 +68,14 @@ void opencl_to_cpu(void *buffers[], void *arg)
 extern void cpu_to_opencl_opencl_func(void *buffers[], void *args);
 struct starpu_codelet cpu_to_opencl_cl =
 {
-	.opencl_funcs = {cpu_to_opencl_opencl_func, NULL},
+	.opencl_funcs = {cpu_to_opencl_opencl_func},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 	.nbuffers = 1
 };
 
 struct starpu_codelet opencl_to_cpu_cl =
 {
-	.cpu_funcs = {opencl_to_cpu, NULL},
+	.cpu_funcs = {opencl_to_cpu},
 	.nbuffers = 1
 };
 #endif

+ 2 - 2
examples/basic_examples/vector_scal.c

@@ -81,12 +81,12 @@ static struct starpu_codelet cl =
 
 #ifdef STARPU_USE_CUDA
 	/* CUDA implementation of the codelet */
-	.cuda_funcs = {scal_cuda_func, NULL},
+	.cuda_funcs = {scal_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
 	/* OpenCL implementation of the codelet */
-	.opencl_funcs = {scal_opencl_func, NULL},
+	.opencl_funcs = {scal_opencl_func},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 1,

+ 3 - 3
examples/basic_examples/vector_scal_c.c

@@ -42,11 +42,11 @@ static struct starpu_codelet cl =
 {
 	.modes = { STARPU_RW },
 	/* CPU implementation of the codelet */
-	.cpu_funcs = {scal_cpu_func, NULL},
-	.cpu_funcs_name = {"scal_cpu_func", NULL},
+	.cpu_funcs = {scal_cpu_func},
+	.cpu_funcs_name = {"scal_cpu_func"},
 #ifdef STARPU_USE_CUDA
 	/* CUDA implementation of the codelet */
-	.cuda_funcs = {scal_cuda_func, NULL},
+	.cuda_funcs = {scal_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 1,

+ 1 - 1
examples/binary/binary.c

@@ -27,7 +27,7 @@ struct starpu_opencl_program opencl_program;
 struct starpu_codelet cl =
 {
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {opencl_codelet, NULL},
+	.opencl_funcs = {opencl_codelet},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 1,

+ 1 - 1
examples/callback/callback.c

@@ -31,7 +31,7 @@ void cpu_codelet(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 struct starpu_codelet cl =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {cpu_codelet, NULL},
+	.cpu_funcs = {cpu_codelet},
 	.nbuffers = 1,
 	.name = "callback"
 };

+ 1 - 1
examples/callback/prologue.c

@@ -32,7 +32,7 @@ void cpu_codelet(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 struct starpu_codelet cl =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {cpu_codelet, NULL},
+	.cpu_funcs = {cpu_codelet},
 	.nbuffers = 1,
 	.name = "callback"
 };

+ 18 - 18
examples/cg/cg_kernels.c

@@ -93,9 +93,9 @@ static struct starpu_perfmodel accumulate_variable_model =
 struct starpu_codelet accumulate_variable_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {accumulate_variable_cpu, NULL},
+	.cpu_funcs = {accumulate_variable_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {accumulate_variable_cuda, NULL},
+	.cuda_funcs = {accumulate_variable_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_RW, STARPU_R},
@@ -132,9 +132,9 @@ static struct starpu_perfmodel accumulate_vector_model =
 struct starpu_codelet accumulate_vector_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {accumulate_vector_cpu, NULL},
+	.cpu_funcs = {accumulate_vector_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {accumulate_vector_cuda, NULL},
+	.cuda_funcs = {accumulate_vector_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_RW, STARPU_R},
@@ -172,9 +172,9 @@ static struct starpu_perfmodel bzero_variable_model =
 struct starpu_codelet bzero_variable_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {bzero_variable_cpu, NULL},
+	.cpu_funcs = {bzero_variable_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {bzero_variable_cuda, NULL},
+	.cuda_funcs = {bzero_variable_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_W},
@@ -209,9 +209,9 @@ static struct starpu_perfmodel bzero_vector_model =
 struct starpu_codelet bzero_vector_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {bzero_vector_cpu, NULL},
+	.cpu_funcs = {bzero_vector_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {bzero_vector_cuda, NULL},
+	.cuda_funcs = {bzero_vector_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_W},
@@ -266,9 +266,9 @@ static struct starpu_perfmodel dot_kernel_model =
 static struct starpu_codelet dot_kernel_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {dot_kernel_cpu, NULL},
+	.cpu_funcs = {dot_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dot_kernel_cuda, NULL},
+	.cuda_funcs = {dot_kernel_cuda},
 #endif
 	.nbuffers = 3,
 	.model = &dot_kernel_model
@@ -345,9 +345,9 @@ static struct starpu_perfmodel scal_kernel_model =
 static struct starpu_codelet scal_kernel_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {scal_kernel_cpu, NULL},
+	.cpu_funcs = {scal_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {scal_kernel_cuda, NULL},
+	.cuda_funcs = {scal_kernel_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 1,
@@ -420,9 +420,9 @@ static struct starpu_codelet gemv_kernel_cl =
 	.can_execute = can_execute,
 	.type = STARPU_SPMD,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {gemv_kernel_cpu, NULL},
+	.cpu_funcs = {gemv_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {gemv_kernel_cuda, NULL},
+	.cuda_funcs = {gemv_kernel_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 3,
@@ -519,9 +519,9 @@ static struct starpu_perfmodel scal_axpy_kernel_model =
 static struct starpu_codelet scal_axpy_kernel_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {scal_axpy_kernel_cpu, NULL},
+	.cpu_funcs = {scal_axpy_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {scal_axpy_kernel_cuda, NULL},
+	.cuda_funcs = {scal_axpy_kernel_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 2,
@@ -594,9 +594,9 @@ static struct starpu_perfmodel axpy_kernel_model =
 static struct starpu_codelet axpy_kernel_cl =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {axpy_kernel_cpu, NULL},
+	.cpu_funcs = {axpy_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {axpy_kernel_cuda, NULL},
+	.cuda_funcs = {axpy_kernel_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 2,

+ 9 - 9
examples/cholesky/cholesky_kernels.c

@@ -246,11 +246,11 @@ void chol_cublas_codelet_update_u11(void *descr[], void *_args)
 struct starpu_codelet cl11 =
 {
 	.type = STARPU_SEQ,
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 #ifdef STARPU_HAVE_MAGMA
 	.cuda_flags = {STARPU_CUDA_ASYNC},
@@ -263,11 +263,11 @@ struct starpu_codelet cl11 =
 struct starpu_codelet cl21 =
 {
 	.type = STARPU_SEQ,
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	.nbuffers = 2,
@@ -279,11 +279,11 @@ struct starpu_codelet cl22 =
 {
 	.type = STARPU_SEQ,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	.nbuffers = 3,

+ 4 - 4
examples/filters/custom_mf/custom_conversion_codelets.c

@@ -39,7 +39,7 @@ void cuda_to_cpu(void *buffers[], void *arg)
 extern void cpu_to_cuda_cuda_func(void *buffers[], void *args);
 struct starpu_codelet cpu_to_cuda_cl =
 {
-	.cuda_funcs = {cpu_to_cuda_cuda_func, NULL},
+	.cuda_funcs = {cpu_to_cuda_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	.modes = { STARPU_RW },
 	.nbuffers = 1,
@@ -48,7 +48,7 @@ struct starpu_codelet cpu_to_cuda_cl =
 
 struct starpu_codelet cuda_to_cpu_cl =
 {
-	.cpu_funcs = {cuda_to_cpu, NULL},
+	.cpu_funcs = {cuda_to_cpu},
 	.modes = { STARPU_RW },
 	.nbuffers = 1,
 	.name = "codelet_cuda_to_cpu"
@@ -76,7 +76,7 @@ extern void cpu_to_opencl_opencl_func(void *buffers[], void *arg);
 
 struct starpu_codelet cpu_to_opencl_cl =
 {
-	.opencl_funcs = { cpu_to_opencl_opencl_func, NULL },
+	.opencl_funcs = { cpu_to_opencl_opencl_func },
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 	.modes = { STARPU_RW },
 	.nbuffers = 1,
@@ -85,7 +85,7 @@ struct starpu_codelet cpu_to_opencl_cl =
 
 struct starpu_codelet opencl_to_cpu_cl =
 {
-	.cpu_funcs = { opencl_to_cpu_cpu_func, NULL },
+	.cpu_funcs = { opencl_to_cpu_cpu_func },
 	.modes = { STARPU_RW },
 	.nbuffers = 1,
 	.name = "codelet_opencl_to_cpu"

+ 3 - 3
examples/filters/custom_mf/custom_mf_filter.c

@@ -148,7 +148,7 @@ extern void custom_scal_cuda_func(void *buffers[], void *args);
 
 static struct starpu_codelet cpu_cl =
 {
-	.cpu_funcs = { custom_scal_cpu_func, NULL},
+	.cpu_funcs = { custom_scal_cpu_func},
 	.nbuffers = 1,
 	.modes = { STARPU_RW },
 	.name = "codelet_real"
@@ -157,7 +157,7 @@ static struct starpu_codelet cpu_cl =
 #ifdef STARPU_USE_CUDA
 static struct starpu_codelet cuda_cl =
 {
-	.cuda_funcs = { custom_scal_cuda_func, NULL },
+	.cuda_funcs = { custom_scal_cuda_func },
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	.nbuffers = 1,
 	.modes = { STARPU_RW },
@@ -170,7 +170,7 @@ extern void custom_scal_opencl_func(void *buffers[], void *args);
 
 static struct starpu_codelet opencl_cl =
 {
-	.opencl_funcs = { custom_scal_opencl_func, NULL },
+	.opencl_funcs = { custom_scal_opencl_func },
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 	.nbuffers = 1,
 	.modes = { STARPU_RW },

+ 4 - 4
examples/filters/fblock.c

@@ -91,14 +91,14 @@ int main(int argc, char **argv)
 	starpu_data_handle_t handle;
 	struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
 #ifdef STARPU_USE_CUDA
-                .cuda_funcs = {cuda_func, NULL},
+                .cuda_funcs = {cuda_func},
 		.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-                .opencl_funcs = {opencl_func, NULL},
+                .opencl_funcs = {opencl_func},
 		.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 		.nbuffers = 1,

+ 2 - 2
examples/filters/fmatrix.c

@@ -62,8 +62,8 @@ int main(int argc, char **argv)
         starpu_data_handle_t handle;
         struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
                 .nbuffers = 1,
 		.modes = {STARPU_RW},
 		.name = "matrix_scal"

+ 2 - 2
examples/filters/fvector.c

@@ -45,8 +45,8 @@ int main(int argc, char **argv)
 
         struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
                 .nbuffers = 1,
 		.modes = {STARPU_RW},
 		.name = "vector_scal"

+ 3 - 3
examples/filters/shadow.c

@@ -98,10 +98,10 @@ int main(int argc, char **argv)
 
         struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
 #ifdef STARPU_USE_CUDA
-                .cuda_funcs = {cuda_func, NULL},
+                .cuda_funcs = {cuda_func},
 		.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
                 .nbuffers = 2,

+ 3 - 3
examples/filters/shadow2d.c

@@ -152,10 +152,10 @@ int main(int argc, char **argv)
 
         struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
 #ifdef STARPU_USE_CUDA
-                .cuda_funcs = {cuda_func, NULL},
+                .cuda_funcs = {cuda_func},
 		.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
                 .nbuffers = 2,

+ 3 - 3
examples/filters/shadow3d.c

@@ -118,10 +118,10 @@ int main(int argc, char **argv)
 
         struct starpu_codelet cl =
 	{
-                .cpu_funcs = {cpu_func, NULL},
-                .cpu_funcs_name = {"cpu_func", NULL},
+                .cpu_funcs = {cpu_func},
+                .cpu_funcs_name = {"cpu_func"},
 #ifdef STARPU_USE_CUDA
-                .cuda_funcs = {cuda_func, NULL},
+                .cuda_funcs = {cuda_func},
 		.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
                 .nbuffers = 2,

+ 1 - 1
examples/gl_interop/gl_interop.c

@@ -41,7 +41,7 @@ void dummy(void *buffers[], void *cl_arg)
 }
 
 struct starpu_codelet cl = {
-	.cuda_funcs = { dummy, NULL },
+	.cuda_funcs = { dummy },
 	.nbuffers = 1,
 	.modes = { STARPU_W },
 };

+ 1 - 1
examples/gl_interop/gl_interop_idle.c

@@ -44,7 +44,7 @@ void dummy(void *buffers[], void *cl_arg)
 }
 
 struct starpu_codelet cl = {
-	.cuda_funcs = { dummy, NULL },
+	.cuda_funcs = { dummy },
 	.nbuffers = 1,
 	.modes = { STARPU_W },
 };

+ 8 - 8
examples/heat/dw_factolu.c

@@ -40,9 +40,9 @@ static unsigned no_prio = 0;
 
 static struct starpu_codelet cl11 =
 {
-	.cpu_funcs = {dw_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
@@ -51,9 +51,9 @@ static struct starpu_codelet cl11 =
 
 static struct starpu_codelet cl12 =
 {
-	.cpu_funcs = {dw_cpu_codelet_update_u12, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u12},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u12, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u12},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 2,
@@ -63,9 +63,9 @@ static struct starpu_codelet cl12 =
 
 static struct starpu_codelet cl21 =
 {
-	.cpu_funcs = {dw_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u21},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 2,
@@ -75,9 +75,9 @@ static struct starpu_codelet cl21 =
 
 static struct starpu_codelet cl22 =
 {
-	.cpu_funcs = {dw_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u22},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 3,

+ 8 - 8
examples/heat/dw_factolu_grain.c

@@ -50,9 +50,9 @@ static struct starpu_task *create_task(starpu_tag_t id)
 static struct starpu_codelet cl11 =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.model = &model_11
@@ -84,9 +84,9 @@ static struct starpu_task *create_task_11(starpu_data_handle_t dataA, unsigned k
 static struct starpu_codelet cl12 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u12, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u12},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u12, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u12},
 #endif
 	.nbuffers = 2,
 	.model = &model_12
@@ -128,9 +128,9 @@ static void create_task_12(starpu_data_handle_t dataA, unsigned k, unsigned i, u
 static struct starpu_codelet cl21 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.model = &model_21
@@ -169,9 +169,9 @@ static void create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j, u
 static struct starpu_codelet cl22 =
 {
 	.modes = { STARPU_R, STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.model = &model_22

+ 8 - 8
examples/heat/dw_factolu_tag.c

@@ -52,9 +52,9 @@ static struct starpu_task *create_task(starpu_tag_t id)
 static struct starpu_codelet cl11 =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.model = &model_11
@@ -87,9 +87,9 @@ static struct starpu_task *create_task_11(starpu_data_handle_t dataA, unsigned k
 static struct starpu_codelet cl12 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u12, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u12},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u12, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u12},
 #endif
 	.nbuffers = 2,
 	.model = &model_12
@@ -131,9 +131,9 @@ static void create_task_12(starpu_data_handle_t dataA, unsigned k, unsigned i)
 static struct starpu_codelet cl21 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.model = &model_21
@@ -172,9 +172,9 @@ static void create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j)
 static struct starpu_codelet cl22 =
 {
 	.modes = { STARPU_R, STARPU_R, STARPU_RW },
-	.cpu_funcs = {dw_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {dw_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dw_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {dw_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.model = &model_22

+ 4 - 4
examples/incrementer/incrementer.c

@@ -64,14 +64,14 @@ int main(int argc, char **argv)
 
 	struct starpu_codelet cl =
 	{
-		.cpu_funcs = {cpu_codelet, NULL},
-		.cpu_funcs_name = {"cpu_codelet", NULL},
+		.cpu_funcs = {cpu_codelet},
+		.cpu_funcs_name = {"cpu_codelet"},
 #ifdef STARPU_USE_CUDA
-		.cuda_funcs = {cuda_codelet, NULL},
+		.cuda_funcs = {cuda_codelet},
 		.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-		.opencl_funcs = {opencl_codelet, NULL},
+		.opencl_funcs = {opencl_codelet},
 		.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 		.nbuffers = 1,

+ 2 - 2
examples/interface/complex.c

@@ -52,11 +52,11 @@ extern void copy_complex_codelet_opencl(void *buffers[], void *args);
 struct starpu_codelet cl_copy =
 {
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {copy_complex_codelet_cuda, NULL},
+	.cuda_funcs = {copy_complex_codelet_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {copy_complex_codelet_opencl, NULL},
+	.opencl_funcs = {copy_complex_codelet_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 2,

+ 4 - 4
examples/interface/complex_codelet.h

@@ -52,8 +52,8 @@ void compare_complex_codelet(void *descr[], void *_args)
 
 struct starpu_codelet cl_compare =
 {
-	.cpu_funcs = {compare_complex_codelet, NULL},
-	.cpu_funcs_name = {"compare_complex_codelet", NULL},
+	.cpu_funcs = {compare_complex_codelet},
+	.cpu_funcs_name = {"compare_complex_codelet"},
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_R},
 	.name = "cl_compare"
@@ -78,8 +78,8 @@ void display_complex_codelet(void *descr[], void *_args)
 
 struct starpu_codelet cl_display =
 {
-	.cpu_funcs = {display_complex_codelet, NULL},
-	.cpu_funcs_name = {"display_complex_codelet", NULL},
+	.cpu_funcs = {display_complex_codelet},
+	.cpu_funcs_name = {"display_complex_codelet"},
 	.nbuffers = 1,
 	.modes = {STARPU_R},
 	.name = "cl_display"

+ 18 - 18
examples/lu/xlu_kernels.c

@@ -127,13 +127,13 @@ static int can_execute(unsigned workerid, struct starpu_task *task, unsigned nim
 struct starpu_codelet cl22 =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_u22), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_u22)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_u22), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_u22)},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 3,
 	.modes = {STARPU_R, STARPU_R, STARPU_RW},
@@ -215,13 +215,13 @@ static struct starpu_perfmodel STARPU_LU(model_12) =
 struct starpu_codelet cl12 =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_u12), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_u12)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_u12), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_u12)},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -301,13 +301,13 @@ static struct starpu_perfmodel STARPU_LU(model_21) =
 struct starpu_codelet cl21 =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_u21), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_u21)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_u21), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_u21)},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -404,12 +404,12 @@ static struct starpu_perfmodel STARPU_LU(model_11) =
 struct starpu_codelet cl11 =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_u11), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_u11)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_u11), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_u11)},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
@@ -547,12 +547,12 @@ static struct starpu_perfmodel STARPU_LU(model_11_pivot) =
 struct starpu_codelet cl11_pivot =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_u11_pivot), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_u11_pivot)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_u11_pivot), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_u11_pivot)},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
@@ -637,13 +637,13 @@ static struct starpu_perfmodel STARPU_LU(model_pivot) =
 struct starpu_codelet cl_pivot =
 {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_LU(cpu_pivot), NULL},
+	.cpu_funcs = {STARPU_LU(cpu_pivot)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_LU(cublas_pivot), NULL},
+	.cuda_funcs = {STARPU_LU(cublas_pivot)},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 	CAN_EXECUTE
 #elif defined(STARPU_SIMGRID)
-	.cuda_funcs = {(void*)1, NULL},
+	.cuda_funcs = {(void*)1},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},

+ 4 - 4
examples/mandelbrot/mandelbrot.c

@@ -371,9 +371,9 @@ static struct starpu_codelet spmd_mandelbrot_cl =
 {
 	.type = STARPU_SPMD,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {compute_block_spmd, NULL},
+	.cpu_funcs = {compute_block_spmd},
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {compute_block_opencl, NULL},
+	.opencl_funcs = {compute_block_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 1
@@ -382,9 +382,9 @@ static struct starpu_codelet spmd_mandelbrot_cl =
 static struct starpu_codelet mandelbrot_cl =
 {
 	.type = STARPU_SEQ,
-	.cpu_funcs = {compute_block, NULL},
+	.cpu_funcs = {compute_block},
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {compute_block_opencl, NULL},
+	.opencl_funcs = {compute_block_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 1

+ 2 - 2
examples/mult/xgemm.c

@@ -204,9 +204,9 @@ static struct starpu_codelet cl =
 {
 	.type = STARPU_SEQ, /* changed to STARPU_SPMD if -spmd is passed */
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {cpu_mult, NULL},
+	.cpu_funcs = {cpu_mult},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {cublas_mult, NULL},
+	.cuda_funcs = {cublas_mult},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.nbuffers = 3,

+ 2 - 2
examples/openmp/vector_scal_omp.c

@@ -64,8 +64,8 @@ static struct starpu_codelet cl =
 	.modes = { STARPU_RW },
 	.type = STARPU_FORKJOIN,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {scal_cpu_func, NULL},
-	.cpu_funcs_name = {"scal_cpu_func", NULL},
+	.cpu_funcs = {scal_cpu_func},
+	.cpu_funcs_name = {"scal_cpu_func"},
 	.nbuffers = 1,
 	.model = &vector_scal_model,
 };

+ 3 - 3
examples/pi/pi.c

@@ -105,10 +105,10 @@ static struct starpu_perfmodel model =
 
 static struct starpu_codelet pi_cl =
 {
-	.cpu_funcs = {cpu_kernel, NULL},
-	.cpu_funcs_name = {"cpu_kernel", NULL},
+	.cpu_funcs = {cpu_kernel},
+	.cpu_funcs_name = {"cpu_kernel"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {cuda_kernel, NULL},
+	.cuda_funcs = {cuda_kernel},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_W},

+ 12 - 12
examples/pi/pi_redux.c

@@ -207,10 +207,10 @@ static struct starpu_perfmodel pi_model =
 
 static struct starpu_codelet pi_cl =
 {
-	.cpu_funcs = {pi_func_cpu, NULL},
-	.cpu_funcs_name = {"pi_func_cpu", NULL},
+	.cpu_funcs = {pi_func_cpu},
+	.cpu_funcs_name = {"pi_func_cpu"},
 #ifdef STARPU_HAVE_CURAND
-	.cuda_funcs = {pi_func_cuda, NULL},
+	.cuda_funcs = {pi_func_cuda},
 #endif
 	.nbuffers = 2,
 	.modes    = {STARPU_SCRATCH, STARPU_RW},
@@ -226,10 +226,10 @@ static struct starpu_perfmodel pi_model_redux =
 
 static struct starpu_codelet pi_cl_redux =
 {
-	.cpu_funcs = {pi_func_cpu, NULL},
-	.cpu_funcs_name = {"pi_func_cpu", NULL},
+	.cpu_funcs = {pi_func_cpu},
+	.cpu_funcs_name = {"pi_func_cpu"},
 #ifdef STARPU_HAVE_CURAND
-	.cuda_funcs = {pi_func_cuda, NULL},
+	.cuda_funcs = {pi_func_cuda},
 #endif
 	.nbuffers = 2,
 	.modes    = {STARPU_SCRATCH, STARPU_REDUX},
@@ -256,10 +256,10 @@ static void init_cuda_func(void *descr[], void *cl_arg)
 
 static struct starpu_codelet init_codelet =
 {
-        .cpu_funcs = {init_cpu_func, NULL},
-        .cpu_funcs_name = {"init_cpu_func", NULL},
+        .cpu_funcs = {init_cpu_func},
+        .cpu_funcs_name = {"init_cpu_func"},
 #ifdef STARPU_HAVE_CURAND
-        .cuda_funcs = {init_cuda_func, NULL},
+        .cuda_funcs = {init_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_W},
@@ -295,10 +295,10 @@ void redux_cpu_func(void *descr[], void *cl_arg)
 
 static struct starpu_codelet redux_codelet =
 {
-	.cpu_funcs = {redux_cpu_func, NULL},
-	.cpu_funcs_name = {"redux_cpu_func", NULL},
+	.cpu_funcs = {redux_cpu_func},
+	.cpu_funcs_name = {"redux_cpu_func"},
 #ifdef STARPU_HAVE_CURAND
-	.cuda_funcs = {redux_cuda_func, NULL},
+	.cuda_funcs = {redux_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 	.modes = {STARPU_RW, STARPU_R},

+ 5 - 5
examples/pipeline/pipeline.c

@@ -77,7 +77,7 @@ static struct starpu_perfmodel pipeline_model_x =
 
 static struct starpu_codelet pipeline_codelet_x =
 {
-	.cpu_funcs = {pipeline_cpu_x, NULL},
+	.cpu_funcs = {pipeline_cpu_x},
 	.nbuffers = 1,
 	.modes = {STARPU_W},
 	.model = &pipeline_model_x
@@ -113,9 +113,9 @@ static struct starpu_perfmodel pipeline_model_axpy =
 
 static struct starpu_codelet pipeline_codelet_axpy =
 {
-	.cpu_funcs = {pipeline_cpu_axpy, NULL},
+	.cpu_funcs = {pipeline_cpu_axpy},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {pipeline_cublas_axpy, NULL},
+	.cuda_funcs = {pipeline_cublas_axpy},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -156,9 +156,9 @@ static struct starpu_perfmodel pipeline_model_sum =
 
 static struct starpu_codelet pipeline_codelet_sum =
 {
-	.cpu_funcs = {pipeline_cpu_sum, NULL},
+	.cpu_funcs = {pipeline_cpu_sum},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {pipeline_cublas_sum, NULL},
+	.cuda_funcs = {pipeline_cublas_sum},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_R},

+ 2 - 2
examples/ppm_downscaler/yuv_downscaler.c

@@ -84,8 +84,8 @@ void ds_kernel_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *arg)
 
 static struct starpu_codelet ds_codelet =
 {
-	.cpu_funcs = {ds_kernel_cpu, NULL},
-	.cpu_funcs_name = {"ds_kernel_cpu", NULL},
+	.cpu_funcs = {ds_kernel_cpu},
+	.cpu_funcs_name = {"ds_kernel_cpu"},
 	.nbuffers = 2, /* input -> output */
 	.modes = {STARPU_R, STARPU_W},
 	.model = NULL

+ 3 - 3
examples/profiling/profiling.c

@@ -50,9 +50,9 @@ int main(int argc, char **argv)
 
 	struct starpu_codelet cl =
 	{
-		.cpu_funcs = {sleep_codelet, NULL},
-		.cuda_funcs = {sleep_codelet, NULL},
-		.opencl_funcs = {sleep_codelet, NULL},
+		.cpu_funcs = {sleep_codelet},
+		.cuda_funcs = {sleep_codelet},
+		.opencl_funcs = {sleep_codelet},
 		.nbuffers = 0,
 		.name = "sleep"
 	};

+ 12 - 12
examples/reductions/dot_product.c

@@ -106,14 +106,14 @@ void init_opencl_func(void *buffers[], void *args)
 static struct starpu_codelet init_codelet =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {init_cpu_func, NULL},
-	.cpu_funcs_name = {"init_cpu_func", NULL},
+	.cpu_funcs = {init_cpu_func},
+	.cpu_funcs_name = {"init_cpu_func"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {init_cuda_func, NULL},
+	.cuda_funcs = {init_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {init_opencl_func, NULL},
+	.opencl_funcs = {init_opencl_func},
 #endif
 	.modes = {STARPU_W},
 	.nbuffers = 1,
@@ -185,14 +185,14 @@ void redux_opencl_func(void *buffers[], void *args)
 static struct starpu_codelet redux_codelet =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {redux_cpu_func, NULL},
-	.cpu_funcs_name = {"redux_cpu_func", NULL},
+	.cpu_funcs = {redux_cpu_func},
+	.cpu_funcs_name = {"redux_cpu_func"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {redux_cuda_func, NULL},
+	.cuda_funcs = {redux_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {redux_opencl_func, NULL},
+	.opencl_funcs = {redux_opencl_func},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.modes = {STARPU_RW, STARPU_R},
@@ -300,14 +300,14 @@ void dot_opencl_func(void *buffers[], void *args)
 static struct starpu_codelet dot_codelet =
 {
 	.can_execute = can_execute,
-	.cpu_funcs = {dot_cpu_func, NULL},
-	.cpu_funcs_name = {"dot_cpu_func", NULL},
+	.cpu_funcs = {dot_cpu_func},
+	.cpu_funcs_name = {"dot_cpu_func"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dot_cuda_func, NULL},
+	.cuda_funcs = {dot_cuda_func},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {dot_opencl_func, NULL},
+	.opencl_funcs = {dot_opencl_func},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 3,

+ 6 - 6
examples/reductions/minmax_reduction.c

@@ -57,8 +57,8 @@ void minmax_neutral_cpu_func(void *descr[], void *cl_arg)
 
 static struct starpu_codelet minmax_init_codelet =
 {
-	.cpu_funcs = {minmax_neutral_cpu_func, NULL},
-	.cpu_funcs_name = {"minmax_neutral_cpu_func", NULL},
+	.cpu_funcs = {minmax_neutral_cpu_func},
+	.cpu_funcs_name = {"minmax_neutral_cpu_func"},
 	.modes = {STARPU_W},
 	.nbuffers = 1,
 	.name = "init"
@@ -86,8 +86,8 @@ void minmax_redux_cpu_func(void *descr[], void *cl_arg)
 
 static struct starpu_codelet minmax_redux_codelet =
 {
-	.cpu_funcs = {minmax_redux_cpu_func, NULL},
-	.cpu_funcs_name = {"minmax_redux_cpu_func", NULL},
+	.cpu_funcs = {minmax_redux_cpu_func},
+	.cpu_funcs_name = {"minmax_redux_cpu_func"},
 	.modes = {STARPU_RW, STARPU_R},
 	.nbuffers = 2,
 	.name = "redux"
@@ -123,8 +123,8 @@ void minmax_cpu_func(void *descr[], void *cl_arg)
 
 static struct starpu_codelet minmax_codelet =
 {
-	.cpu_funcs = {minmax_cpu_func, NULL},
-	.cpu_funcs_name = {"minmax_cpu_func", NULL},
+	.cpu_funcs = {minmax_cpu_func},
+	.cpu_funcs_name = {"minmax_cpu_func"},
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_REDUX},
 	.name = "minmax"

+ 3 - 3
examples/sched_ctx/dummy_sched_with_ctx.c

@@ -134,9 +134,9 @@ static void dummy_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg STARPU_A
 
 static struct starpu_codelet dummy_codelet =
 {
-	.cpu_funcs = {dummy_func, NULL},
-	.cuda_funcs = {dummy_func, NULL},
-        .opencl_funcs = {dummy_func, NULL},
+	.cpu_funcs = {dummy_func},
+	.cuda_funcs = {dummy_func},
+        .opencl_funcs = {dummy_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "dummy",

+ 1 - 3
examples/sched_ctx/nested_sched_ctxs.c

@@ -60,9 +60,7 @@ static void sched_ctx_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 
 static struct starpu_codelet sched_ctx_codelet =
 {
-	.cpu_funcs = {sched_ctx_func, NULL},
-	.cuda_funcs = {NULL},
-	.opencl_funcs = {NULL},
+	.cpu_funcs = {sched_ctx_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"

+ 2 - 4
examples/sched_ctx/parallel_code.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2013  Université de Bordeaux
+ * Copyright (C) 2010-2014  Université de Bordeaux
  * Copyright (C) 2010-2014  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -60,9 +60,7 @@ static void sched_ctx_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 
 static struct starpu_codelet sched_ctx_codelet =
 {
-	.cpu_funcs = {sched_ctx_func, NULL},
-	.cuda_funcs = {NULL},
-	.opencl_funcs = {NULL},
+	.cpu_funcs = {sched_ctx_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"

+ 4 - 7
examples/sched_ctx/sched_ctx.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2013  Université de Bordeaux
+ * Copyright (C) 2010-2014  Université de Bordeaux
  * Copyright (C) 2010-2014  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -39,9 +39,7 @@ static void sched_ctx_cuda_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg
 
 static struct starpu_codelet sched_ctx_codelet1 =
 {
-	.cpu_funcs = {sched_ctx_cpu_func, NULL},
-	.cuda_funcs = {NULL},
-	.opencl_funcs = {NULL},
+	.cpu_funcs = {sched_ctx_cpu_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"
@@ -49,9 +47,8 @@ static struct starpu_codelet sched_ctx_codelet1 =
 
 static struct starpu_codelet sched_ctx_codelet2 =
 {
-	.cpu_funcs = {sched_ctx_cpu_func, NULL},
-	.cuda_funcs = {sched_ctx_cuda_func, NULL},
-	.opencl_funcs = {NULL},
+	.cpu_funcs = {sched_ctx_cpu_func},
+	.cuda_funcs = {sched_ctx_cuda_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"

+ 2 - 3
examples/sched_ctx/sched_ctx_without_sched_policy.c

@@ -58,10 +58,9 @@ static void sched_ctx_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 
 static struct starpu_codelet sched_ctx_codelet =
 {
-	.cpu_funcs = {sched_ctx_func, NULL},
+	.cpu_funcs = {sched_ctx_func},
 #warning FIXME: cuda_funcs should not need to be defined
-	.cuda_funcs = {sched_ctx_func, NULL},
-	.opencl_funcs = {NULL},
+	.cuda_funcs = {sched_ctx_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"

+ 1 - 3
examples/sched_ctx/sched_ctx_without_sched_policy_awake.c

@@ -50,9 +50,7 @@ static void sched_ctx_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 
 static struct starpu_codelet sched_ctx_codelet =
 {
-	.cpu_funcs = {sched_ctx_func, NULL},
-	.cuda_funcs = { NULL},
-	.opencl_funcs = {NULL},
+	.cpu_funcs = {sched_ctx_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "sched_ctx"

+ 3 - 3
examples/scheduler/dummy_sched.c

@@ -134,9 +134,9 @@ static void dummy_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg STARPU_A
 
 static struct starpu_codelet dummy_codelet =
 {
-	.cpu_funcs = {dummy_func, NULL},
-	.cuda_funcs = {dummy_func, NULL},
-        .opencl_funcs = {dummy_func, NULL},
+	.cpu_funcs = {dummy_func},
+	.cuda_funcs = {dummy_func},
+        .opencl_funcs = {dummy_func},
 	.model = NULL,
 	.nbuffers = 0,
 	.name = "dummy",

+ 2 - 2
examples/spmd/vector_scal_spmd.c

@@ -83,8 +83,8 @@ static struct starpu_codelet cl =
 	.modes = { STARPU_RW },
 	.type = STARPU_SPMD,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {scal_cpu_func, NULL},
-	.cpu_funcs_name = {"scal_cpu_func", NULL},
+	.cpu_funcs = {scal_cpu_func},
+	.cpu_funcs_name = {"scal_cpu_func"},
 	.nbuffers = 1,
 	.model = &vector_scal_model,
 };

+ 2 - 2
examples/spmv/dw_block_spmv.c

@@ -146,9 +146,9 @@ unsigned totaltasks;
 
 struct starpu_codelet cl =
 {
-	.cpu_funcs = { cpu_block_spmv, NULL},
+	.cpu_funcs = { cpu_block_spmv},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {cublas_block_spmv, NULL},
+	.cuda_funcs = {cublas_block_spmv},
 #endif
 	.nbuffers = 3,
 	.modes = {STARPU_R, STARPU_R, STARPU_RW}

+ 3 - 3
examples/spmv/spmv.c

@@ -95,13 +95,13 @@ static struct starpu_data_filter vector_f =
 
 static struct starpu_codelet spmv_cl =
 {
-	.cpu_funcs = {spmv_kernel_cpu, NULL},
+	.cpu_funcs = {spmv_kernel_cpu},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {spmv_kernel_cuda, NULL},
+	.cuda_funcs = {spmv_kernel_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-        .opencl_funcs = {spmv_kernel_opencl, NULL},
+        .opencl_funcs = {spmv_kernel_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 3,

+ 12 - 12
examples/stencil/stencil-kernels.c

@@ -418,14 +418,14 @@ static struct starpu_perfmodel cl_update_model =
 
 struct starpu_codelet cl_update =
 {
-	.cpu_funcs = {update_func_cpu, NULL},
-	.cpu_funcs_name = {"update_func_cpu", NULL},
+	.cpu_funcs = {update_func_cpu},
+	.cpu_funcs_name = {"update_func_cpu"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {update_func_cuda, NULL},
+	.cuda_funcs = {update_func_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {update_func_opencl, NULL},
+	.opencl_funcs = {update_func_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.model = &cl_update_model,
@@ -609,14 +609,14 @@ static struct starpu_perfmodel save_cl_top_model =
 
 struct starpu_codelet save_cl_bottom =
 {
-	.cpu_funcs = {dummy_func_bottom_cpu, NULL},
-	.cpu_funcs_name = {"dummy_func_bottom_cpu", NULL},
+	.cpu_funcs = {dummy_func_bottom_cpu},
+	.cpu_funcs_name = {"dummy_func_bottom_cpu"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dummy_func_bottom_cuda, NULL},
+	.cuda_funcs = {dummy_func_bottom_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {dummy_func_bottom_opencl, NULL},
+	.opencl_funcs = {dummy_func_bottom_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.model = &save_cl_bottom_model,
@@ -626,14 +626,14 @@ struct starpu_codelet save_cl_bottom =
 
 struct starpu_codelet save_cl_top =
 {
-	.cpu_funcs = {dummy_func_top_cpu, NULL},
-	.cpu_funcs_name = {"dummy_func_top_cpu", NULL},
+	.cpu_funcs = {dummy_func_top_cpu},
+	.cpu_funcs_name = {"dummy_func_top_cpu"},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {dummy_func_top_cuda, NULL},
+	.cuda_funcs = {dummy_func_top_cuda},
 	.cuda_flags = {STARPU_CUDA_ASYNC},
 #endif
 #ifdef STARPU_USE_OPENCL
-	.opencl_funcs = {dummy_func_top_opencl, NULL},
+	.opencl_funcs = {dummy_func_top_opencl},
 	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.model = &save_cl_top_model,

+ 4 - 4
examples/stencil/stencil-tasks.c

@@ -216,10 +216,10 @@ void null_func(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg STARPU_ATTRIBUTE
 static struct starpu_codelet null =
 {
 	.modes = { STARPU_W, STARPU_W },
-	.cpu_funcs = {null_func, NULL},
-	.cpu_funcs_name = {"null_func", NULL},
-	.cuda_funcs = {null_func, NULL},
-	.opencl_funcs = {null_func, NULL},
+	.cpu_funcs = {null_func},
+	.cpu_funcs_name = {"null_func"},
+	.cuda_funcs = {null_func},
+	.opencl_funcs = {null_func},
 	.nbuffers = 2,
 	.name = "start"
 };

+ 6 - 6
examples/tag_example/tag_example4.c

@@ -49,17 +49,17 @@ void cpu_codelet_B(void *descr[], void *_args)
 }
 
 struct starpu_codelet cl_A = {
-	.cpu_funcs = { cpu_codelet_A, NULL},
-	.cuda_funcs = { cpu_codelet_A, NULL},
-	.opencl_funcs = { cpu_codelet_A, NULL},
+	.cpu_funcs = { cpu_codelet_A},
+	.cuda_funcs = { cpu_codelet_A},
+	.opencl_funcs = { cpu_codelet_A},
 	.nbuffers = 0,
 	.name = "dummyA"
 };
 
 struct starpu_codelet cl_B = {
-	.cpu_funcs = { cpu_codelet_B, NULL},
-	.cuda_funcs = { cpu_codelet_B, NULL},
-	.opencl_funcs = { cpu_codelet_B, NULL},
+	.cpu_funcs = { cpu_codelet_B},
+	.cuda_funcs = { cpu_codelet_B},
+	.opencl_funcs = { cpu_codelet_B},
 	.nbuffers = 0,
 	.name = "dummyB"
 };

+ 1 - 1
examples/top/hello_world_top.c

@@ -100,7 +100,7 @@ struct starpu_codelet cl =
 {
 	/* this codelet may only be executed on a CPU, and its cpu
  	 * implementation is function "cpu_func" */
-	.cpu_funcs = {cpu_func, NULL},
+	.cpu_funcs = {cpu_func},
 	/* the codelet does not manipulate any data that is managed
 	 * by our DSM */
 	.nbuffers = 0

+ 1 - 1
mpi/examples/complex/mpi_complex.c

@@ -28,7 +28,7 @@ void display_foo_codelet(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet foo_display =
 {
-	.cpu_funcs = {display_foo_codelet, NULL},
+	.cpu_funcs = {display_foo_codelet},
 	.nbuffers = 1,
 	.modes = {STARPU_R}
 };

+ 6 - 6
mpi/examples/matrix_decomposition/mpi_cholesky_codelets.c

@@ -30,9 +30,9 @@
 
 static struct starpu_codelet cl11 =
 {
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
@@ -41,9 +41,9 @@ static struct starpu_codelet cl11 =
 
 static struct starpu_codelet cl21 =
 {
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -52,9 +52,9 @@ static struct starpu_codelet cl21 =
 
 static struct starpu_codelet cl22 =
 {
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.modes = {STARPU_R, STARPU_R, STARPU_RW | STARPU_COMMUTE},

+ 8 - 8
mpi/examples/mpi_lu/pxlu_kernels.c

@@ -109,9 +109,9 @@ static struct starpu_perfmodel STARPU_PLU(model_22) = {
 
 struct starpu_codelet STARPU_PLU(cl22) = {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_PLU(cpu_u22), NULL},
+	.cpu_funcs = {STARPU_PLU(cpu_u22)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_PLU(cublas_u22), NULL},
+	.cuda_funcs = {STARPU_PLU(cublas_u22)},
 #endif
 	.nbuffers = 3,
 	.modes = {STARPU_R, STARPU_R, STARPU_RW},
@@ -217,9 +217,9 @@ static struct starpu_perfmodel STARPU_PLU(model_12) = {
 
 struct starpu_codelet STARPU_PLU(cl12) = {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_PLU(cpu_u12), NULL},
+	.cpu_funcs = {STARPU_PLU(cpu_u12)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_PLU(cublas_u12), NULL},
+	.cuda_funcs = {STARPU_PLU(cublas_u12)},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -326,9 +326,9 @@ static struct starpu_perfmodel STARPU_PLU(model_21) = {
 
 struct starpu_codelet STARPU_PLU(cl21) = {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_PLU(cpu_u21), NULL},
+	.cpu_funcs = {STARPU_PLU(cpu_u21)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_PLU(cublas_u21), NULL},
+	.cuda_funcs = {STARPU_PLU(cublas_u21)},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -432,9 +432,9 @@ static struct starpu_perfmodel STARPU_PLU(model_11) = {
 
 struct starpu_codelet STARPU_PLU(cl11) = {
 	.where = STARPU_CPU|STARPU_CUDA,
-	.cpu_funcs = {STARPU_PLU(cpu_u11), NULL},
+	.cpu_funcs = {STARPU_PLU(cpu_u11)},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {STARPU_PLU(cublas_u11), NULL},
+	.cuda_funcs = {STARPU_PLU(cublas_u11)},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},

+ 1 - 1
mpi/examples/stencil/stencil5.c

@@ -34,7 +34,7 @@ void stencil5_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet stencil5_cl =
 {
-	.cpu_funcs = {stencil5_cpu, NULL},
+	.cpu_funcs = {stencil5_cpu},
 	.nbuffers = 5,
 	.modes = {STARPU_RW, STARPU_R, STARPU_R, STARPU_R, STARPU_R}
 };

+ 6 - 6
mpi/src/starpu_mpi_task_insert.c

@@ -809,9 +809,9 @@ void _starpu_mpi_redux_data_dummy_func(STARPU_ATTRIBUTE_UNUSED void *buffers[],
 static
 struct starpu_codelet _starpu_mpi_redux_data_read_cl =
 {
-	.cpu_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
-	.cuda_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
-	.opencl_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
+	.cpu_funcs = {_starpu_mpi_redux_data_dummy_func},
+	.cuda_funcs = {_starpu_mpi_redux_data_dummy_func},
+	.opencl_funcs = {_starpu_mpi_redux_data_dummy_func},
 	.nbuffers = 1,
 	.modes = {STARPU_R},
 	.name = "_starpu_mpi_redux_data_read_cl"
@@ -819,9 +819,9 @@ struct starpu_codelet _starpu_mpi_redux_data_read_cl =
 
 struct starpu_codelet _starpu_mpi_redux_data_readwrite_cl =
 {
-	.cpu_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
-	.cuda_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
-	.opencl_funcs = {_starpu_mpi_redux_data_dummy_func, NULL},
+	.cpu_funcs = {_starpu_mpi_redux_data_dummy_func},
+	.cuda_funcs = {_starpu_mpi_redux_data_dummy_func},
+	.opencl_funcs = {_starpu_mpi_redux_data_dummy_func},
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
 	.name = "_starpu_mpi_redux_data_write_cl"

+ 3 - 3
mpi/tests/callback.c

@@ -29,9 +29,9 @@ void my_func(STARPU_ATTRIBUTE_UNUSED void *descr[], STARPU_ATTRIBUTE_UNUSED void
 
 struct starpu_codelet my_codelet =
 {
-	.cpu_funcs = {my_func, NULL},
-	.cuda_funcs = {my_func, NULL},
-	.opencl_funcs = {my_func, NULL}
+	.cpu_funcs = {my_func},
+	.cuda_funcs = {my_func},
+	.opencl_funcs = {my_func}
 };
 
 static

+ 1 - 1
mpi/tests/insert_task.c

@@ -29,7 +29,7 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_R}
 };

+ 1 - 1
mpi/tests/insert_task_block.c

@@ -46,7 +46,7 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 1,
 	.modes = {STARPU_RW}
 };

+ 1 - 1
mpi/tests/insert_task_compute.c

@@ -28,7 +28,7 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_R}
 };

+ 5 - 5
mpi/tests/insert_task_owner.c

@@ -32,35 +32,35 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet_r_w =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_W}
 };
 
 struct starpu_codelet mycodelet_rw_r =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_R}
 };
 
 struct starpu_codelet mycodelet_rw_rw =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_RW}
 };
 
 struct starpu_codelet mycodelet_w_r =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_W, STARPU_R}
 };
 
 struct starpu_codelet mycodelet_r_r =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_R}
 };

+ 1 - 1
mpi/tests/insert_task_owner2.c

@@ -40,7 +40,7 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 4,
 	.modes = {STARPU_R, STARPU_RW, STARPU_W, STARPU_W}
 };

+ 1 - 1
mpi/tests/insert_task_owner_data.c

@@ -29,7 +29,7 @@ void func_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_RW}
 };

+ 1 - 1
mpi/tests/insert_task_recv_cache.c

@@ -34,7 +34,7 @@ void func_cpu(STARPU_ATTRIBUTE_UNUSED void *descr[], STARPU_ATTRIBUTE_UNUSED voi
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_R}
 };

+ 1 - 1
mpi/tests/insert_task_sent_cache.c

@@ -34,7 +34,7 @@ void func_cpu(STARPU_ATTRIBUTE_UNUSED void *descr[], STARPU_ATTRIBUTE_UNUSED voi
 
 struct starpu_codelet mycodelet =
 {
-	.cpu_funcs = {func_cpu, NULL},
+	.cpu_funcs = {func_cpu},
 	.nbuffers = 2,
 	.modes = {STARPU_RW, STARPU_R}
 };

+ 4 - 4
mpi/tests/mpi_reduction.c

@@ -26,7 +26,7 @@ extern void display_cpu_func(void *descr[], void *cl_arg);
 
 static struct starpu_codelet init_codelet =
 {
-	.cpu_funcs = {init_cpu_func, NULL},
+	.cpu_funcs = {init_cpu_func},
 	.nbuffers = 1,
 	.modes = {STARPU_W},
 	.name = "init_codelet"
@@ -34,7 +34,7 @@ static struct starpu_codelet init_codelet =
 
 static struct starpu_codelet redux_codelet =
 {
-	.cpu_funcs = {redux_cpu_func, NULL},
+	.cpu_funcs = {redux_cpu_func},
 	.modes = {STARPU_RW, STARPU_R},
 	.nbuffers = 2,
 	.name = "redux_codelet"
@@ -42,7 +42,7 @@ static struct starpu_codelet redux_codelet =
 
 static struct starpu_codelet dot_codelet =
 {
-	.cpu_funcs = {dot_cpu_func, NULL},
+	.cpu_funcs = {dot_cpu_func},
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_REDUX},
 	.name = "dot_codelet"
@@ -50,7 +50,7 @@ static struct starpu_codelet dot_codelet =
 
 static struct starpu_codelet display_codelet =
 {
-	.cpu_funcs = {display_cpu_func, NULL},
+	.cpu_funcs = {display_cpu_func},
 	.nbuffers = 1,
 	.modes = {STARPU_R},
 	.name = "display_codelet"

+ 1 - 1
mpi/tests/mpi_scatter_gather.c

@@ -49,7 +49,7 @@ void cpu_codelet(void *descr[], void *_args)
 
 static struct starpu_codelet cl =
 {
-	.cpu_funcs = {cpu_codelet, NULL},
+	.cpu_funcs = {cpu_codelet},
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
 };

+ 2 - 2
mpi/tests/ring.c

@@ -40,9 +40,9 @@ void increment_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 static struct starpu_codelet increment_cl =
 {
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {increment_cuda, NULL},
+	.cuda_funcs = {increment_cuda},
 #endif
-	.cpu_funcs = {increment_cpu, NULL},
+	.cpu_funcs = {increment_cpu},
 	.nbuffers = 1,
 	.modes = {STARPU_RW}
 };

+ 2 - 2
mpi/tests/ring_async.c

@@ -40,9 +40,9 @@ void increment_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 static struct starpu_codelet increment_cl =
 {
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {increment_cuda, NULL},
+	.cuda_funcs = {increment_cuda},
 #endif
-	.cpu_funcs = {increment_cpu, NULL},
+	.cpu_funcs = {increment_cpu},
 	.nbuffers = 1,
 	.modes = {STARPU_RW}
 };

+ 2 - 2
mpi/tests/ring_async_implicit.c

@@ -40,9 +40,9 @@ void increment_cpu(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 static struct starpu_codelet increment_cl =
 {
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {increment_cuda, NULL},
+	.cuda_funcs = {increment_cuda},
 #endif
-	.cpu_funcs = {increment_cpu, NULL},
+	.cpu_funcs = {increment_cpu},
 	.nbuffers = 1,
 	.modes = {STARPU_RW}
 };

+ 6 - 6
sc_hypervisor/examples/cholesky/cholesky_grain_tag.c

@@ -43,9 +43,9 @@ static struct starpu_task *create_task(starpu_tag_t id)
 static struct starpu_codelet cl11 =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.model = &chol_model_11
@@ -77,9 +77,9 @@ static struct starpu_task * create_task_11(starpu_data_handle_t dataA, unsigned
 static struct starpu_codelet cl21 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.model = &chol_model_21
@@ -119,9 +119,9 @@ static void create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j, u
 static struct starpu_codelet cl22 =
 {
 	.modes = { STARPU_R, STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.model = &chol_model_22

+ 6 - 6
sc_hypervisor/examples/cholesky/cholesky_implicit.c

@@ -31,9 +31,9 @@ struct starpu_perfmodel chol_model_22;
 static struct starpu_codelet cl11 =
 {
 	.type = STARPU_SEQ,
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW},
@@ -43,9 +43,9 @@ static struct starpu_codelet cl11 =
 static struct starpu_codelet cl21 =
 {
 	.type = STARPU_SEQ,
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.modes = {STARPU_R, STARPU_RW},
@@ -56,9 +56,9 @@ static struct starpu_codelet cl22 =
 {
 	.type = STARPU_SEQ,
 	.max_parallelism = INT_MAX,
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.modes = {STARPU_R, STARPU_R, STARPU_RW},

+ 6 - 6
sc_hypervisor/examples/cholesky/cholesky_tag.c

@@ -43,9 +43,9 @@ static struct starpu_task *create_task(starpu_tag_t id)
 static struct starpu_codelet cl11 =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.model = &chol_model_11
@@ -78,9 +78,9 @@ static struct starpu_task * create_task_11(starpu_data_handle_t dataA, unsigned
 static struct starpu_codelet cl21 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.model = &chol_model_21
@@ -123,9 +123,9 @@ static void create_task_21(starpu_data_handle_t dataA, unsigned k, unsigned j)
 static struct starpu_codelet cl22 =
 {
 	.modes = { STARPU_R, STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.model = &chol_model_22

+ 6 - 6
sc_hypervisor/examples/cholesky/cholesky_tile_tag.c

@@ -46,9 +46,9 @@ static struct starpu_task *create_task(starpu_tag_t id)
 static struct starpu_codelet cl11 =
 {
 	.modes = { STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u11, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u11},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u11, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u11},
 #endif
 	.nbuffers = 1,
 	.model = &chol_model_11
@@ -80,9 +80,9 @@ static struct starpu_task * create_task_11(unsigned k, unsigned nblocks)
 static struct starpu_codelet cl21 =
 {
 	.modes = { STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u21, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u21},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u21, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u21},
 #endif
 	.nbuffers = 2,
 	.model = &chol_model_21
@@ -122,9 +122,9 @@ static void create_task_21(unsigned k, unsigned j)
 static struct starpu_codelet cl22 =
 {
 	.modes = { STARPU_R, STARPU_R, STARPU_RW },
-	.cpu_funcs = {chol_cpu_codelet_update_u22, NULL},
+	.cpu_funcs = {chol_cpu_codelet_update_u22},
 #ifdef STARPU_USE_CUDA
-	.cuda_funcs = {chol_cublas_codelet_update_u22, NULL},
+	.cuda_funcs = {chol_cublas_codelet_update_u22},
 #endif
 	.nbuffers = 3,
 	.model = &chol_model_22

+ 2 - 2
socl/src/cl_enqueuecopybuffer.c

@@ -62,8 +62,8 @@ static struct starpu_perfmodel copy_buffer_perfmodel = {
 static struct starpu_codelet codelet_copybuffer = {
    .where = STARPU_CPU | STARPU_OPENCL,
    .model = &copy_buffer_perfmodel,
-   .cpu_funcs = { &soclEnqueueCopyBuffer_cpu_task, NULL },
-   .opencl_funcs = { &soclEnqueueCopyBuffer_opencl_task, NULL },
+   .cpu_funcs = { &soclEnqueueCopyBuffer_cpu_task },
+   .opencl_funcs = { &soclEnqueueCopyBuffer_opencl_task },
    .modes = {STARPU_R, STARPU_RW},
    .nbuffers = 2
 };

+ 2 - 2
socl/src/cl_enqueuereadbuffer.c

@@ -68,8 +68,8 @@ static struct starpu_perfmodel read_buffer_perfmodel = {
 static struct starpu_codelet codelet_readbuffer = {
    .where = STARPU_OPENCL,
    .model = &read_buffer_perfmodel,
-   .cpu_funcs = { &soclEnqueueReadBuffer_cpu_task, NULL },
-   .opencl_funcs = { &soclEnqueueReadBuffer_opencl_task, NULL },
+   .cpu_funcs = { &soclEnqueueReadBuffer_cpu_task },
+   .opencl_funcs = { &soclEnqueueReadBuffer_opencl_task },
    .modes = {STARPU_R},
    .nbuffers = 1
 };

+ 4 - 4
socl/src/cl_enqueuewritebuffer.c

@@ -72,8 +72,8 @@ static struct starpu_perfmodel write_buffer_perfmodel = {
 static struct starpu_codelet codelet_writebuffer = {
    .where = STARPU_OPENCL,
    .model = &write_buffer_perfmodel,
-   .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task, NULL },
-   .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task, NULL },
+   .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task },
+   .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task },
    .modes = {STARPU_W},
    .nbuffers = 1
 };
@@ -81,8 +81,8 @@ static struct starpu_codelet codelet_writebuffer = {
 static struct starpu_codelet codelet_writebuffer_partial = {
    .where = STARPU_OPENCL,
    .model = &write_buffer_perfmodel,
-   .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task, NULL },
-   .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task, NULL },
+   .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task },
+   .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task },
    .modes = {STARPU_RW},
    .nbuffers = 1
 };

+ 1 - 2
socl/src/command.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010,2011 University of Bordeaux
+ * Copyright (C) 2010,2011, 2014 University of Bordeaux
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -190,7 +190,6 @@ command_ndrange_kernel command_ndrange_kernel_create (
 	cmd->codelet.where = STARPU_OPENCL;
 	cmd->codelet.power_model = NULL;
 	cmd->codelet.opencl_funcs[0] = &soclEnqueueNDRangeKernel_task;
-	cmd->codelet.opencl_funcs[1] = NULL;
 
 	/* Kernel is mutable, so we duplicate its parameters... */
 	cmd->num_args = kernel->num_args;

+ 1 - 1
src/datawizard/filters.c

@@ -311,7 +311,7 @@ void starpu_data_unpartition(starpu_data_handle_t root_handle, unsigned gatherin
 			struct starpu_codelet cl =
 			{
 				.where = STARPU_CPU,
-				.cpu_funcs = { _starpu_empty_codelet_function, NULL },
+				.cpu_funcs = { _starpu_empty_codelet_function },
 				.modes = { STARPU_RW },
 				.nbuffers = 1
 			};

+ 4 - 4
src/datawizard/malloc.c

@@ -75,9 +75,9 @@ static struct starpu_perfmodel malloc_pinned_model =
 
 static struct starpu_codelet malloc_pinned_cl =
 {
-	.cuda_funcs = {malloc_pinned_cuda_codelet, NULL},
+	.cuda_funcs = {malloc_pinned_cuda_codelet},
 //#ifdef STARPU_USE_OPENCL
-//	.opencl_funcs = {malloc_pinned_opencl_codelet, NULL},
+//	.opencl_funcs = {malloc_pinned_opencl_codelet},
 //#endif
 	.nbuffers = 0,
 	.model = &malloc_pinned_model
@@ -256,9 +256,9 @@ static struct starpu_perfmodel free_pinned_model =
 
 static struct starpu_codelet free_pinned_cl =
 {
-	.cuda_funcs = {free_pinned_cuda_codelet, NULL},
+	.cuda_funcs = {free_pinned_cuda_codelet},
 //#ifdef STARPU_USE_OPENCL
-//	.opencl_funcs = {free_pinned_opencl_codelet, NULL},
+//	.opencl_funcs = {free_pinned_opencl_codelet},
 //#endif
 	.nbuffers = 0,
 	.model = &free_pinned_model

+ 6 - 6
src/util/execute_on_all.c

@@ -45,9 +45,9 @@ void starpu_execute_on_specific_workers(void (*func)(void*), void * arg, unsigne
 	struct starpu_codelet wrapper_cl =
 	{
 		.where = 0xFF,
-		.cuda_funcs = {wrapper_func, NULL},
-		.cpu_funcs = {wrapper_func, NULL},
-		.opencl_funcs = {wrapper_func, NULL},
+		.cuda_funcs = {wrapper_func},
+		.cpu_funcs = {wrapper_func},
+		.opencl_funcs = {wrapper_func},
 		/* XXX we do not handle Cell .. */
 		.nbuffers = 0,
 		.name = name
@@ -114,9 +114,9 @@ void starpu_execute_on_each_worker_ex(void (*func)(void *), void *arg, uint32_t
 	struct starpu_codelet wrapper_cl =
 	{
 		.where = where,
-		.cuda_funcs = {wrapper_func, NULL},
-		.cpu_funcs = {wrapper_func, NULL},
-		.opencl_funcs = {wrapper_func, NULL},
+		.cuda_funcs = {wrapper_func},
+		.cpu_funcs = {wrapper_func},
+		.opencl_funcs = {wrapper_func},
 		.nbuffers = 0,
 		.name = (name != NULL ? name : "execute_on_all_wrapper")
 	};

+ 5 - 5
src/util/starpu_data_cpy.c

@@ -124,11 +124,11 @@ struct starpu_perfmodel copy_model =
 static struct starpu_codelet copy_cl =
 {
 	.where = STARPU_CPU|STARPU_CUDA|STARPU_OPENCL|STARPU_MIC|STARPU_SCC,
-	.cpu_funcs = {common_data_cpy_func, NULL},
-	.cuda_funcs = {common_data_cpy_func, NULL},
-	.opencl_funcs = {common_data_cpy_func, NULL},
-	.mic_funcs = {mic_cpy_func, NULL},
-	.scc_funcs = {scc_cpy_func, NULL},
+	.cpu_funcs = {common_data_cpy_func},
+	.cuda_funcs = {common_data_cpy_func},
+	.opencl_funcs = {common_data_cpy_func},
+	.mic_funcs = {mic_cpy_func},
+	.scc_funcs = {scc_cpy_func},
 	.nbuffers = 2,
 	.modes = {STARPU_W, STARPU_R},
 	.model = &copy_model

+ 0 - 0
starpufft/src/starpufftx1d.c


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä