Преглед на файлове

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

Samuel Thibault преди 10 години
родител
ревизия
6757bca1b5
променени са 100 файла, в които са добавени 383 реда и са изтрити 398 реда
  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


Някои файлове не бяха показани, защото твърде много файлове са промени