Browse Source

Merge branch 'master' of git+ssh://scm.gforge.inria.fr/gitroot/starpu/starpu

Samuel Thibault 5 years ago
parent
commit
bc853df209
86 changed files with 935 additions and 444 deletions
  1. 171 5
      doc/doxygen_dev/Makefile.am
  2. 85 2
      doc/doxygen_dev/doxygen-config.cfg.in
  3. 86 2
      doc/doxygen_dev/refman.tex
  4. 0 3
      examples/Makefile.am.tmp.y
  5. 2 0
      src/common/barrier.h
  6. 2 0
      src/common/barrier_counter.h
  7. 7 5
      src/common/fxt.h
  8. 25 16
      src/common/graph.h
  9. 3 1
      src/common/knobs.h
  10. 0 5
      src/common/list.h
  11. 2 0
      src/common/prio_list.h
  12. 23 21
      src/common/rbtree.h
  13. 20 18
      src/common/rbtree_i.h
  14. 9 7
      src/common/rwlock.h
  15. 2 0
      src/common/starpu_spinlock.h
  16. 2 0
      src/common/thread.h
  17. 2 0
      src/common/timing.h
  18. 6 4
      src/common/utils.h
  19. 2 0
      src/core/combined_workers.h
  20. 2 0
      src/core/debug.h
  21. 11 9
      src/core/dependencies/cg.h
  22. 2 0
      src/core/dependencies/data_concurrency.h
  23. 4 2
      src/core/dependencies/implicit_data_deps.h
  24. 2 0
      src/core/dependencies/tags.h
  25. 3 1
      src/core/detect_combined_workers.h
  26. 10 10
      src/core/disk.h
  27. 2 0
      src/core/disk_ops/unistd/disk_unistd_global.h
  28. 2 0
      src/core/drivers.h
  29. 15 13
      src/core/errorcheck.h
  30. 2 0
      src/core/idle_hook.h
  31. 48 46
      src/core/jobs.h
  32. 2 0
      src/core/perfmodel/multiple_regression.h
  33. 2 0
      src/core/perfmodel/perfmodel.h
  34. 3 1
      src/core/perfmodel/regression.h
  35. 2 0
      src/core/progress_hook.h
  36. 51 49
      src/core/sched_ctx.h
  37. 8 6
      src/core/sched_ctx_list.h
  38. 5 3
      src/core/sched_policy.h
  39. 4 2
      src/core/simgrid.h
  40. 8 6
      src/core/task.h
  41. 8 6
      src/core/task_bundle.h
  42. 17 15
      src/core/topology.h
  43. 67 65
      src/datawizard/coherency.h
  44. 6 4
      src/datawizard/copy_driver.h
  45. 19 17
      src/datawizard/data_request.h
  46. 2 0
      src/datawizard/datastats.h
  47. 2 0
      src/datawizard/datawizard.h
  48. 3 2
      src/datawizard/filters.h
  49. 5 3
      src/datawizard/footprint.h
  50. 4 2
      src/datawizard/interfaces/data_interface.h
  51. 2 0
      src/datawizard/malloc.h
  52. 12 10
      src/datawizard/memalloc.h
  53. 2 0
      src/datawizard/memory_manager.h
  54. 5 3
      src/datawizard/memory_nodes.h
  55. 2 0
      src/datawizard/memstats.h
  56. 2 0
      src/datawizard/node_ops.h
  57. 3 1
      src/datawizard/sort_data_handles.h
  58. 3 1
      src/datawizard/write_back.h
  59. 4 2
      src/debug/starpu_debug_helpers.h
  60. 2 0
      src/debug/traces/starpu_fxt.h
  61. 2 0
      src/drivers/cpu/driver_cpu.h
  62. 2 0
      src/drivers/cuda/driver_cuda.h
  63. 2 0
      src/drivers/disk/driver_disk.h
  64. 2 0
      src/drivers/driver_common/driver_common.h
  65. 2 0
      src/drivers/mic/driver_mic_common.h
  66. 2 0
      src/drivers/mic/driver_mic_sink.h
  67. 2 0
      src/drivers/mic/driver_mic_source.h
  68. 18 16
      src/drivers/mp_common/mp_common.h
  69. 6 3
      src/drivers/mp_common/sink_common.h
  70. 2 0
      src/drivers/mp_common/source_common.h
  71. 2 0
      src/drivers/mpi/driver_mpi_common.h
  72. 2 0
      src/drivers/mpi/driver_mpi_sink.h
  73. 3 1
      src/drivers/mpi/driver_mpi_source.h
  74. 2 0
      src/drivers/opencl/driver_opencl.h
  75. 2 0
      src/drivers/opencl/driver_opencl_utils.h
  76. 8 6
      src/profiling/bound.h
  77. 14 12
      src/profiling/profiling.h
  78. 12 10
      src/sched_policies/fifo_queues.h
  79. 2 0
      src/sched_policies/helper_mct.h
  80. 6 5
      src/sched_policies/prio_deque.h
  81. 2 0
      src/sched_policies/sched_component.h
  82. 2 0
      src/starpu_parameters.h
  83. 25 23
      src/util/openmp_runtime_support.h
  84. 2 0
      src/util/starpu_clusters_create.h
  85. 2 0
      src/util/starpu_data_cpy.h
  86. 2 0
      src/util/starpu_task_insert_utils.h

+ 171 - 5
doc/doxygen_dev/Makefile.am

@@ -59,8 +59,9 @@ chapters =	\
 images =
 
 if BUILD_DOC
-starpu_config.h: $(top_srcdir)/include/starpu_config.h.in
+config.h: $(top_srcdir)/src/common/config.h.in
 	@$(SED) 's/#undef \(.*\)/#define \1 1/' $< > $@
+	@$(SED) -i '1s/^/\/\*\* \@file \*\/\n/' $@
 
 chapters/version.sty: $(chapters)
 	@for f in $(chapters) ; do \
@@ -102,9 +103,176 @@ chapters/version.html: $(chapters)
 
 dox_inputs = $(DOX_CONFIG) 				\
 	$(chapters) 					\
-	starpu_config.h					\
+	config.h					\
 	chapters/version.sty				\
 	chapters/version.html				\
+	$(top_srcdir)/src/datawizard/data_request.h \
+	$(top_srcdir)/src/datawizard/data_request.h \
+	$(top_srcdir)/src/datawizard/coherency.h \
+	$(top_srcdir)/src/datawizard/sort_data_handles.h \
+	$(top_srcdir)/src/datawizard/memalloc.h \
+	$(top_srcdir)/src/datawizard/copy_driver.h \
+	$(top_srcdir)/src/datawizard/filters.h \
+	$(top_srcdir)/src/datawizard/datastats.h \
+	$(top_srcdir)/src/datawizard/write_back.h \
+	$(top_srcdir)/src/datawizard/interfaces/data_interface.h \
+	$(top_srcdir)/src/datawizard/memory_manager.h \
+	$(top_srcdir)/src/datawizard/node_ops.h \
+	$(top_srcdir)/src/datawizard/memstats.h \
+	$(top_srcdir)/src/datawizard/datawizard.h \
+	$(top_srcdir)/src/datawizard/memory_nodes.h \
+	$(top_srcdir)/src/datawizard/footprint.h \
+	$(top_srcdir)/src/datawizard/malloc.h \
+	$(top_srcdir)/src/drivers/cpu/driver_cpu.h \
+	$(top_srcdir)/src/drivers/cuda/driver_cuda.h \
+	$(top_srcdir)/src/drivers/opencl/driver_opencl_utils.h \
+	$(top_srcdir)/src/drivers/opencl/driver_opencl.h \
+	$(top_srcdir)/src/drivers/disk/driver_disk.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_common.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_sink.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_source.h \
+	$(top_srcdir)/src/drivers/mp_common/sink_common.h \
+	$(top_srcdir)/src/drivers/mp_common/mp_common.h \
+	$(top_srcdir)/src/drivers/mp_common/source_common.h \
+	$(top_srcdir)/src/drivers/driver_common/driver_common.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_sink.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_source.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_common.h \
+	$(top_srcdir)/src/profiling/profiling.h \
+	$(top_srcdir)/src/profiling/bound.h \
+	$(top_srcdir)/src/util/starpu_data_cpy.h \
+	$(top_srcdir)/src/util/openmp_runtime_support.h \
+	$(top_srcdir)/src/util/starpu_clusters_create.h \
+	$(top_srcdir)/src/util/starpu_task_insert_utils.h \
+	$(top_srcdir)/src/common/graph.h \
+	$(top_srcdir)/src/common/fxt.h \
+	$(top_srcdir)/src/common/starpu_spinlock.h \
+	$(top_srcdir)/src/common/rbtree_i.h \
+	$(top_srcdir)/src/common/rbtree.h \
+	$(top_srcdir)/src/common/timing.h \
+	$(top_srcdir)/src/common/rwlock.h \
+	$(top_srcdir)/src/common/barrier.h \
+	$(top_srcdir)/src/common/prio_list.h \
+	$(top_srcdir)/src/common/barrier_counter.h \
+	$(top_srcdir)/src/common/uthash.h \
+	$(top_srcdir)/src/common/knobs.h \
+	$(top_srcdir)/src/common/utils.h \
+	$(top_srcdir)/src/common/thread.h \
+	$(top_srcdir)/src/common/list.h \
+	$(top_srcdir)/src/debug/starpu_debug_helpers.h \
+	$(top_srcdir)/src/debug/traces/starpu_fxt.h \
+	$(top_srcdir)/src/starpu_parameters.h \
+	$(top_srcdir)/src/sched_policies/fifo_queues.h \
+	$(top_srcdir)/src/sched_policies/helper_mct.h \
+	$(top_srcdir)/src/sched_policies/sched_component.h \
+	$(top_srcdir)/src/sched_policies/prio_deque.h \
+	$(top_srcdir)/src/core/jobs.h \
+	$(top_srcdir)/src/core/disk_ops/unistd/disk_unistd_global.h \
+	$(top_srcdir)/src/core/dependencies/tags.h \
+	$(top_srcdir)/src/core/dependencies/data_concurrency.h \
+	$(top_srcdir)/src/core/dependencies/implicit_data_deps.h \
+	$(top_srcdir)/src/core/dependencies/cg.h \
+	$(top_srcdir)/src/core/idle_hook.h \
+	$(top_srcdir)/src/core/sched_ctx_list.h \
+	$(top_srcdir)/src/core/perfmodel/multiple_regression.h \
+	$(top_srcdir)/src/core/perfmodel/perfmodel.h \
+	$(top_srcdir)/src/core/perfmodel/regression.h \
+	$(top_srcdir)/src/core/debug.h \
+	$(top_srcdir)/src/core/sched_ctx.h \
+	$(top_srcdir)/src/core/simgrid.h \
+	$(top_srcdir)/src/core/task_bundle.h \
+	$(top_srcdir)/src/core/topology.h \
+	$(top_srcdir)/src/core/combined_workers.h \
+	$(top_srcdir)/src/core/detect_combined_workers.h \
+	$(top_srcdir)/src/core/task.h \
+	$(top_srcdir)/src/core/disk.h \
+	$(top_srcdir)/src/core/sched_policy.h \
+	$(top_srcdir)/src/core/errorcheck.h \
+	$(top_srcdir)/src/core/progress_hook.h \
+	$(top_srcdir)/src/core/drivers.h \
+	$(top_srcdir)/src/core/workers.h
+	$(top_srcdir)/src/datawizard/coherency.h \ \
+	$(top_srcdir)/src/datawizard/sort_data_handles.h \
+	$(top_srcdir)/src/datawizard/memalloc.h \
+	$(top_srcdir)/src/datawizard/copy_driver.h \
+	$(top_srcdir)/src/datawizard/filters.h \
+	$(top_srcdir)/src/datawizard/datastats.h \
+	$(top_srcdir)/src/datawizard/write_back.h \
+	$(top_srcdir)/src/datawizard/interfaces/data_interface.h \
+	$(top_srcdir)/src/datawizard/memory_manager.h \
+	$(top_srcdir)/src/datawizard/node_ops.h \
+	$(top_srcdir)/src/datawizard/memstats.h \
+	$(top_srcdir)/src/datawizard/datawizard.h \
+	$(top_srcdir)/src/datawizard/memory_nodes.h \
+	$(top_srcdir)/src/datawizard/footprint.h \
+	$(top_srcdir)/src/datawizard/malloc.h \
+	$(top_srcdir)/src/drivers/cpu/driver_cpu.h \
+	$(top_srcdir)/src/drivers/cuda/driver_cuda.h \
+	$(top_srcdir)/src/drivers/opencl/driver_opencl_utils.h \
+	$(top_srcdir)/src/drivers/opencl/driver_opencl.h \
+	$(top_srcdir)/src/drivers/disk/driver_disk.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_common.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_sink.h \
+	$(top_srcdir)/src/drivers/mpi/driver_mpi_source.h \
+	$(top_srcdir)/src/drivers/mp_common/sink_common.h \
+	$(top_srcdir)/src/drivers/mp_common/mp_common.h \
+	$(top_srcdir)/src/drivers/mp_common/source_common.h \
+	$(top_srcdir)/src/drivers/driver_common/driver_common.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_sink.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_source.h \
+	$(top_srcdir)/src/drivers/mic/driver_mic_common.h \
+	$(top_srcdir)/src/profiling/profiling.h \
+	$(top_srcdir)/src/profiling/bound.h \
+	$(top_srcdir)/src/util/starpu_data_cpy.h \
+	$(top_srcdir)/src/util/openmp_runtime_support.h \
+	$(top_srcdir)/src/util/starpu_clusters_create.h \
+	$(top_srcdir)/src/util/starpu_task_insert_utils.h \
+	$(top_srcdir)/src/common/graph.h \
+	$(top_srcdir)/src/common/fxt.h \
+	$(top_srcdir)/src/common/starpu_spinlock.h \
+	$(top_srcdir)/src/common/rbtree_i.h \
+	$(top_srcdir)/src/common/rbtree.h \
+	$(top_srcdir)/src/common/timing.h \
+	$(top_srcdir)/src/common/rwlock.h \
+	$(top_srcdir)/src/common/barrier.h \
+	$(top_srcdir)/src/common/prio_list.h \
+	$(top_srcdir)/src/common/barrier_counter.h \
+	$(top_srcdir)/src/common/uthash.h \
+	$(top_srcdir)/src/common/knobs.h \
+	$(top_srcdir)/src/common/utils.h \
+	$(top_srcdir)/src/common/thread.h \
+	$(top_srcdir)/src/common/list.h \
+	$(top_srcdir)/src/debug/starpu_debug_helpers.h \
+	$(top_srcdir)/src/debug/traces/starpu_fxt.h \
+	$(top_srcdir)/src/starpu_parameters.h \
+	$(top_srcdir)/src/sched_policies/fifo_queues.h \
+	$(top_srcdir)/src/sched_policies/helper_mct.h \
+	$(top_srcdir)/src/sched_policies/sched_component.h \
+	$(top_srcdir)/src/sched_policies/prio_deque.h \
+	$(top_srcdir)/src/core/jobs.h \
+	$(top_srcdir)/src/core/disk_ops/unistd/disk_unistd_global.h \
+	$(top_srcdir)/src/core/dependencies/tags.h \
+	$(top_srcdir)/src/core/dependencies/data_concurrency.h \
+	$(top_srcdir)/src/core/dependencies/implicit_data_deps.h \
+	$(top_srcdir)/src/core/dependencies/cg.h \
+	$(top_srcdir)/src/core/idle_hook.h \
+	$(top_srcdir)/src/core/sched_ctx_list.h \
+	$(top_srcdir)/src/core/perfmodel/multiple_regression.h \
+	$(top_srcdir)/src/core/perfmodel/perfmodel.h \
+	$(top_srcdir)/src/core/perfmodel/regression.h \
+	$(top_srcdir)/src/core/debug.h \
+	$(top_srcdir)/src/core/sched_ctx.h \
+	$(top_srcdir)/src/core/simgrid.h \
+	$(top_srcdir)/src/core/task_bundle.h \
+	$(top_srcdir)/src/core/topology.h \
+	$(top_srcdir)/src/core/combined_workers.h \
+	$(top_srcdir)/src/core/detect_combined_workers.h \
+	$(top_srcdir)/src/core/task.h \
+	$(top_srcdir)/src/core/disk.h \
+	$(top_srcdir)/src/core/sched_policy.h \
+	$(top_srcdir)/src/core/errorcheck.h \
+	$(top_srcdir)/src/core/progress_hook.h \
+	$(top_srcdir)/src/core/drivers.h \
 	$(top_srcdir)/src/core/workers.h
 
 $(DOX_HTML_DIR): $(DOX_TAG) refman.tex
@@ -127,8 +295,6 @@ $(DOX_PDF): $(DOX_TAG) refman.tex
 	@echo $(PDFLATEX) $(DOX_LATEX_DIR)/refman.tex
 	@cd $(DOX_LATEX_DIR) ;\
 	rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out ;\
-	$(SED) -i -e 's/__env__/\\_Environment Variables!/' -e 's/\\-\\_\\-\\-\\_\\-env\\-\\_\\-\\-\\_\\-//' ExecutionConfigurationThroughEnvironmentVariables.tex ;\
-	$(SED) -i -e 's/__configure__/\\_Configure Options!/' -e 's/\\-\\_\\-\\-\\_\\-configure\\-\\_\\-\\-\\_\\-//' CompilationConfiguration.tex ;\
 	$(SED) -i s'/\\item Module\\-Documentation/\\item \\hyperlink{ModuleDocumentation}{Module Documentation}/' index.tex ;\
 	$(SED) -i s'/\\item File\\-Documentation/\\item \\hyperlink{FileDocumentation}{File Documentation}/' index.tex ;\
 	max_print_line=1000000 $(PDFLATEX) -interaction batchmode refman.tex ;\
@@ -146,7 +312,7 @@ $(DOX_PDF): $(DOX_TAG) refman.tex
 	done
 	mv $(DOX_LATEX_DIR)/refman.pdf $(DOX_PDF)
 
-CLEANFILES = $(DOX_TAG) starpu_config.h \
+CLEANFILES = $(DOX_TAG) config.h \
     -r \
     $(DOX_HTML_DIR) \
     $(DOX_LATEX_DIR) \

+ 85 - 2
doc/doxygen_dev/doxygen-config.cfg.in

@@ -15,7 +15,90 @@
 # See the GNU Lesser General Public License in COPYING.LGPL for more details.
 #
 INPUT                  = @top_srcdir@/doc/doxygen_dev/chapters         \
-                         @top_builddir@/doc/doxygen_dev/starpu_config.h \
+                         @top_builddir@/doc/doxygen_dev/config.h \
+			 @top_srcdir@/src/datawizard/data_request.h \
+			 @top_srcdir@/src/datawizard/coherency.h \
+			 @top_srcdir@/src/datawizard/sort_data_handles.h \
+			 @top_srcdir@/src/datawizard/memalloc.h \
+			 @top_srcdir@/src/datawizard/copy_driver.h \
+			 @top_srcdir@/src/datawizard/filters.h \
+			 @top_srcdir@/src/datawizard/datastats.h \
+			 @top_srcdir@/src/datawizard/write_back.h \
+			 @top_srcdir@/src/datawizard/interfaces/data_interface.h \
+			 @top_srcdir@/src/datawizard/memory_manager.h \
+			 @top_srcdir@/src/datawizard/node_ops.h \
+			 @top_srcdir@/src/datawizard/memstats.h \
+			 @top_srcdir@/src/datawizard/datawizard.h \
+			 @top_srcdir@/src/datawizard/memory_nodes.h \
+			 @top_srcdir@/src/datawizard/footprint.h \
+			 @top_srcdir@/src/datawizard/malloc.h \
+			 @top_srcdir@/src/drivers/cpu/driver_cpu.h \
+			 @top_srcdir@/src/drivers/cuda/driver_cuda.h \
+			 @top_srcdir@/src/drivers/opencl/driver_opencl_utils.h \
+			 @top_srcdir@/src/drivers/opencl/driver_opencl.h \
+			 @top_srcdir@/src/drivers/disk/driver_disk.h \
+			 @top_srcdir@/src/drivers/mpi/driver_mpi_common.h \
+			 @top_srcdir@/src/drivers/mpi/driver_mpi_sink.h \
+			 @top_srcdir@/src/drivers/mpi/driver_mpi_source.h \
+			 @top_srcdir@/src/drivers/mp_common/sink_common.h \
+			 @top_srcdir@/src/drivers/mp_common/mp_common.h \
+			 @top_srcdir@/src/drivers/mp_common/source_common.h \
+			 @top_srcdir@/src/drivers/driver_common/driver_common.h \
+			 @top_srcdir@/src/drivers/mic/driver_mic_sink.h \
+			 @top_srcdir@/src/drivers/mic/driver_mic_source.h \
+			 @top_srcdir@/src/drivers/mic/driver_mic_common.h \
+			 @top_srcdir@/src/profiling/profiling.h \
+			 @top_srcdir@/src/profiling/bound.h \
+			 @top_srcdir@/src/util/starpu_data_cpy.h \
+			 @top_srcdir@/src/util/openmp_runtime_support.h \
+			 @top_srcdir@/src/util/starpu_clusters_create.h \
+			 @top_srcdir@/src/util/starpu_task_insert_utils.h \
+			 @top_srcdir@/src/common/graph.h \
+			 @top_srcdir@/src/common/fxt.h \
+			 @top_srcdir@/src/common/starpu_spinlock.h \
+			 @top_srcdir@/src/common/rbtree_i.h \
+			 @top_srcdir@/src/common/rbtree.h \
+			 @top_srcdir@/src/common/timing.h \
+			 @top_srcdir@/src/common/rwlock.h \
+			 @top_srcdir@/src/common/barrier.h \
+			 @top_srcdir@/src/common/prio_list.h \
+			 @top_srcdir@/src/common/barrier_counter.h \
+			 @top_srcdir@/src/common/uthash.h \
+			 @top_srcdir@/src/common/knobs.h \
+			 @top_srcdir@/src/common/utils.h \
+			 @top_srcdir@/src/common/thread.h \
+			 @top_srcdir@/src/common/list.h \
+			 @top_srcdir@/src/debug/starpu_debug_helpers.h \
+			 @top_srcdir@/src/debug/traces/starpu_fxt.h \
+			 @top_srcdir@/src/starpu_parameters.h \
+			 @top_srcdir@/src/sched_policies/fifo_queues.h \
+			 @top_srcdir@/src/sched_policies/helper_mct.h \
+			 @top_srcdir@/src/sched_policies/sched_component.h \
+			 @top_srcdir@/src/sched_policies/prio_deque.h \
+			 @top_srcdir@/src/core/jobs.h \
+			 @top_srcdir@/src/core/disk_ops/unistd/disk_unistd_global.h \
+			 @top_srcdir@/src/core/dependencies/tags.h \
+			 @top_srcdir@/src/core/dependencies/data_concurrency.h \
+			 @top_srcdir@/src/core/dependencies/implicit_data_deps.h \
+			 @top_srcdir@/src/core/dependencies/cg.h \
+			 @top_srcdir@/src/core/idle_hook.h \
+			 @top_srcdir@/src/core/sched_ctx_list.h \
+			 @top_srcdir@/src/core/perfmodel/multiple_regression.h \
+			 @top_srcdir@/src/core/perfmodel/perfmodel.h \
+			 @top_srcdir@/src/core/perfmodel/regression.h \
+			 @top_srcdir@/src/core/debug.h \
+			 @top_srcdir@/src/core/sched_ctx.h \
+			 @top_srcdir@/src/core/simgrid.h \
+			 @top_srcdir@/src/core/task_bundle.h \
+			 @top_srcdir@/src/core/topology.h \
+			 @top_srcdir@/src/core/combined_workers.h \
+			 @top_srcdir@/src/core/detect_combined_workers.h \
+			 @top_srcdir@/src/core/task.h \
+			 @top_srcdir@/src/core/disk.h \
+			 @top_srcdir@/src/core/sched_policy.h \
+			 @top_srcdir@/src/core/errorcheck.h \
+			 @top_srcdir@/src/core/progress_hook.h \
+			 @top_srcdir@/src/core/drivers.h \
 			 @top_srcdir@/src/core/workers.h
 
 EXAMPLE_PATH           = @top_srcdir@/doc/doxygen_dev \
@@ -23,7 +106,7 @@ EXAMPLE_PATH           = @top_srcdir@/doc/doxygen_dev \
 
 INPUT_FILTER           = @top_builddir@/doc/doxygen_dev/doxygen_filter.sh
 
-#LATEX_HEADER           = @top_srcdir@/doc/doxygen/refman.tex
+#LATEX_HEADER           = @top_srcdir@/doc/doxygen_dev/refman.tex
 
 #IMAGE_PATH             = @top_srcdir@/doc/doxygen_dev/chapters/images
 

+ 86 - 2
doc/doxygen_dev/refman.tex

@@ -73,7 +73,91 @@ Documentation License”.
 
 \input{group__workers}
 
-\chapter{Index}
-\printindex
+\chapter{File Index}
+\input{files}
+
+\chapter{File Documentation}
+\input{barrier_8h}
+\input{barrier__counter_8h}
+\input{bound_8h}
+\input{cg_8h}
+\input{coherency_8h}
+\input{combined__workers_8h}
+\input{config_8h}
+\input{copy__driver_8h}
+\input{data__concurrency_8h}
+\input{data__interface_8h}
+\input{data__request_8h}
+\input{datastats_8h}
+\input{datawizard_8h}
+\input{debug_8h}
+\input{detect__combined__workers_8h}
+\input{disk_8h}
+\input{disk__unistd__global_8h}
+\input{driver__common_8h}
+\input{driver__cpu_8h}
+\input{driver__cuda_8h}
+\input{driver__disk_8h}
+\input{driver__mic__common_8h}
+\input{driver__mic__sink_8h}
+\input{driver__mic__source_8h}
+\input{driver__mpi__common_8h}
+\input{driver__mpi__sink_8h}
+\input{driver__mpi__source_8h}
+\input{driver__opencl_8h}
+\input{driver__opencl__utils_8h}
+\input{drivers_8h}
+\input{errorcheck_8h}
+\input{fifo__queues_8h}
+\input{filters_8h}
+\input{footprint_8h}
+\input{fxt_8h}
+\input{graph_8h}
+\input{helper__mct_8h}
+\input{idle__hook_8h}
+\input{implicit__data__deps_8h}
+\input{jobs_8h}
+\input{knobs_8h}
+\input{malloc_8h}
+\input{memalloc_8h}
+\input{memory__manager_8h}
+\input{memory__nodes_8h}
+\input{memstats_8h}
+\input{mp__common_8h}
+\input{multiple__regression_8h}
+\input{node__ops_8h}
+\input{openmp__runtime__support_8h}
+\input{perfmodel_8h}
+\input{prio__deque_8h}
+\input{prio__list_8h}
+\input{profiling_8h}
+\input{progress__hook_8h}
+\input{rbtree_8h}
+\input{rbtree__i_8h}
+\input{regression_8h}
+\input{rwlock_8h}
+\input{sched__component_8h}
+\input{sched__ctx_8h}
+\input{sched__ctx__list_8h}
+\input{sched__policy_8h}
+\input{simgrid_8h}
+\input{sink__common_8h}
+\input{sort__data__handles_8h}
+\input{source__common_8h}
+\input{starpu__clusters__create_8h}
+\input{starpu__data__cpy_8h}
+\input{starpu__debug__helpers_8h}
+\input{starpu__fxt_8h}
+\input{starpu__parameters_8h}
+\input{starpu__spinlock_8h}
+\input{starpu__task__insert__utils_8h}
+\input{tags_8h}
+\input{task_8h}
+\input{task__bundle_8h}
+\input{thread_8h}
+\input{timing_8h}
+\input{topology_8h}
+\input{utils_8h}
+\input{write__back_8h}
 
 \end{document}

+ 0 - 3
examples/Makefile.am.tmp.y

@@ -1,3 +0,0 @@
-# Copyright (C) 2016       Uppsala University
-# Copyright (C) 2011       Télécom-SudParis
-# Copyright (C) 2017       Erwan Leria

+ 2 - 0
src/common/barrier.h

@@ -19,6 +19,8 @@
 
 #include <starpu_thread.h>
 
+/** @file */
+
 struct _starpu_barrier
 {
 	unsigned count;

+ 2 - 0
src/common/barrier_counter.h

@@ -18,6 +18,8 @@
 #ifndef __BARRIER_COUNTER_H__
 #define __BARRIER_COUNTER_H__
 
+/** @file */
+
 #include <common/utils.h>
 #include <common/barrier.h>
 

+ 7 - 5
src/common/fxt.h

@@ -20,6 +20,8 @@
 #define __FXT_H__
 
 
+/** @file */
+
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE  1 /* ou _BSD_SOURCE ou _SVID_SOURCE */
 #endif
@@ -310,13 +312,13 @@ static inline unsigned long _starpu_fxt_get_submit_order(void)
 
 long _starpu_gettid(void);
 
-/* Initialize the FxT library. */
+/** Initialize the FxT library. */
 void _starpu_fxt_init_profiling(uint64_t trace_buffer_size);
 
-/* Stop the FxT library, and generate the trace file. */
+/** Stop the FxT library, and generate the trace file. */
 void _starpu_stop_fxt_profiling(void);
 
-/* Generate the trace file. Used when catching signals SIGINT and SIGSEGV */
+/** Generate the trace file. Used when catching signals SIGINT and SIGSEGV */
 void _starpu_fxt_dump_file(void);
 
 #ifdef FUT_NEEDS_COMMIT
@@ -328,7 +330,7 @@ void _starpu_fxt_dump_file(void);
 #ifdef FUT_FULL_PROBE1STR
 #define _STARPU_FUT_FULL_PROBE1STR(KEYMASK, CODE, P1, str) FUT_FULL_PROBE1STR(CODE, P1, str)
 #else
-/* Sometimes we need something a little more specific than the wrappers from
+/** Sometimes we need something a little more specific than the wrappers from
  * FxT: these macro permit to put add an event with 3 (or 4) numbers followed
  * by a string. */
 #define _STARPU_FUT_FULL_PROBE1STR(KEYMASK, CODE, P1, str)			\
@@ -353,7 +355,7 @@ do {									\
 #ifdef FUT_FULL_PROBE2STR
 #define _STARPU_FUT_FULL_PROBE2STR(KEYMASK, CODE, P1, P2, str) FUT_FULL_PROBE2STR(CODE, P1, P2, str)
 #else
-/* Sometimes we need something a little more specific than the wrappers from
+/** Sometimes we need something a little more specific than the wrappers from
  * FxT: these macro permit to put add an event with 3 (or 4) numbers followed
  * by a string. */
 #define _STARPU_FUT_FULL_PROBE2STR(KEYMASK, CODE, P1, P2, str)			\

+ 25 - 16
src/common/graph.h

@@ -18,6 +18,9 @@
 #define __GRAPH_H__
 
 #include <common/list.h>
+
+/** @file */
+
 MULTILIST_CREATE_TYPE(_starpu_graph_node, all)
 MULTILIST_CREATE_TYPE(_starpu_graph_node, top)
 MULTILIST_CREATE_TYPE(_starpu_graph_node, bottom)
@@ -28,24 +31,24 @@ struct _starpu_graph_node
 	starpu_pthread_mutex_t mutex;	/* protects access to the job */
 	struct _starpu_job *job;	/* pointer to the job, if it is still alive, NULL otherwise */
 
-	/*
+	/**
 	 * Fields for graph analysis for scheduling heuristics
 	 */
-	/* Member of list of all jobs without incoming dependency */
+	/** Member of list of all jobs without incoming dependency */
 	struct _starpu_graph_node_multilist_top top;
-	/* Member of list of all jobs without outgoing dependency */
+	/** Member of list of all jobs without outgoing dependency */
 	struct _starpu_graph_node_multilist_bottom bottom;
-	/* Member of list of all jobs */
+	/** Member of list of all jobs */
 	struct _starpu_graph_node_multilist_all all;
-	/* Member of list of dropped jobs */
+	/** Member of list of dropped jobs */
 	struct _starpu_graph_node_multilist_dropped dropped;
 
-	/* set of incoming dependencies */
+	/** set of incoming dependencies */
 	struct _starpu_graph_node **incoming;	/* May contain NULLs for terminated jobs */
 	unsigned *incoming_slot;	/* Index within corresponding outgoing array */
 	unsigned n_incoming;		/* Number of slots used */
 	unsigned alloc_incoming;	/* Size of incoming */
-	/* set of outgoing dependencies */
+	/** set of outgoing dependencies */
 	struct _starpu_graph_node **outgoing;
 	unsigned *outgoing_slot;	/* Index within corresponding incoming array */
 	unsigned n_outgoing;		/* Number of slots used */
@@ -71,27 +74,33 @@ void _starpu_graph_rdlock(void);
 void _starpu_graph_wrunlock(void);
 void _starpu_graph_rdunlock(void);
 
-/* Add a job to the graph, called before any _starpu_graph_add_job_dep call */
+/** Add a job to the graph, called before any _starpu_graph_add_job_dep call */
 void _starpu_graph_add_job(struct _starpu_job *job);
 
-/* Add a dependency between jobs */
+/** Add a dependency between jobs */
 void _starpu_graph_add_job_dep(struct _starpu_job *job, struct _starpu_job *prev_job);
 
-/* Remove a job from the graph */
+/** Remove a job from the graph */
 void _starpu_graph_drop_job(struct _starpu_job *job);
 
-/* Really drop the nodes from the graph now */
+/** Really drop the nodes from the graph now */
 void _starpu_graph_drop_dropped_nodes(void);
 
-/* This make StarPU compute for each task the depth, i.e. the length of the longest path to a task without outgoing dependencies. */
-/* This does not take job duration into account, just the number */
+/**
+ * This make StarPU compute for each task the depth, i.e. the length
+ * of the longest path to a task without outgoing dependencies.
+ * This does not take job duration into account, just the number
+*/
 void _starpu_graph_compute_depths(void);
 
-/* Compute the descendants of jobs in the graph */
+/** Compute the descendants of jobs in the graph */
 void _starpu_graph_compute_descendants(void);
 
-/* This calls \e func for each node of the task graph, passing also \e data as it */
-/* Apply func on each job of the graph */
+/**
+ * This calls \e func for each node of the task graph, passing also \e
+ * data as it
+ * Apply func on each job of the graph
+*/
 void _starpu_graph_foreach(void (*func)(void *data, struct _starpu_graph_node *node), void *data);
 
 #endif /* __GRAPH_H__ */

+ 3 - 1
src/common/knobs.h

@@ -19,11 +19,13 @@
 #ifndef __KNOBS_H__
 #define __KNOBS_H__
 
+/** @file */
+
 #include <stdint.h>
 #include <starpu.h>
 #include <common/config.h>
 
-/* Performance Monitoring */
+/** Performance Monitoring */
 #define STARPU_ASSERT_PERF_COUNTER_SCOPE_DEFINED(t) STARPU_ASSERT( \
 		(t == starpu_perf_counter_scope_global ) \
 		|| (t == starpu_perf_counter_scope_per_worker ) \

+ 0 - 5
src/common/list.h

@@ -20,11 +20,6 @@
 
 #include <starpu_util.h>
 
-/** @file
- * @brief Doubly-linked lists
- */
-
-
 /** @remarks list how-to
  * *********************************************************
  * LIST_TYPE(FOO, content);

+ 2 - 0
src/common/prio_list.h

@@ -14,6 +14,8 @@
  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  */
 
+/** @file */
+
 /*
  * This implements list with priorities (as an int), by using two stages:
  * - an RB tree stage sorted by priority, whose leaves are...

+ 23 - 21
src/common/rbtree.h

@@ -29,6 +29,8 @@
 #ifndef _KERN_RBTREE_H
 #define _KERN_RBTREE_H
 
+/** @file */
+
 #include <stddef.h>
 #include <assert.h>
 #include <stdint.h>
@@ -44,24 +46,24 @@
 #define STARPU_RBTREE_LEFT     0
 #define STARPU_RBTREE_RIGHT    1
 
-/*
+/**
  * Red-black node.
  */
 struct starpu_rbtree_node;
 
-/*
+/**
  * Red-black tree.
  */
 struct starpu_rbtree;
 
-/*
+/**
  * Static tree initializer.
  */
 #define STARPU_RBTREE_INITIALIZER { NULL }
 
 #include "rbtree_i.h"
 
-/*
+/**
  * Initialize a tree.
  */
 static inline void starpu_rbtree_init(struct starpu_rbtree *tree)
@@ -69,14 +71,14 @@ static inline void starpu_rbtree_init(struct starpu_rbtree *tree)
     tree->root = NULL;
 }
 
-/*
+/**
  * This version assumes that the content of tree was already zeroed
  */
 static inline void starpu_rbtree_init0(struct starpu_rbtree *tree STARPU_ATTRIBUTE_UNUSED)
 {
 }
 
-/*
+/**
  * Initialize a node.
  *
  * A node is in no tree when its parent points to itself.
@@ -90,7 +92,7 @@ static inline void starpu_rbtree_node_init(struct starpu_rbtree_node *node)
     node->children[STARPU_RBTREE_RIGHT] = NULL;
 }
 
-/*
+/**
  * This version assumes that the content of node was already zeroed
  */
 static inline void starpu_rbtree_node_init0(struct starpu_rbtree_node *node)
@@ -102,7 +104,7 @@ static inline void starpu_rbtree_node_init0(struct starpu_rbtree_node *node)
     //node->children[STARPU_RBTREE_RIGHT] = NULL;
 }
 
-/*
+/**
  * Return true if node is in no tree.
  */
 static inline int starpu_rbtree_node_unlinked(const struct starpu_rbtree_node *node)
@@ -110,13 +112,13 @@ static inline int starpu_rbtree_node_unlinked(const struct starpu_rbtree_node *n
     return starpu_rbtree_parent(node) == node;
 }
 
-/*
+/**
  * Macro that evaluates to the address of the structure containing the
  * given node based on the given type and member.
  */
 #define starpu_rbtree_entry(node, type, member) structof(node, type, member)
 
-/*
+/**
  * Return true if tree is empty.
  */
 static inline int starpu_rbtree_empty(const struct starpu_rbtree *tree)
@@ -124,7 +126,7 @@ static inline int starpu_rbtree_empty(const struct starpu_rbtree *tree)
     return tree->root == NULL;
 }
 
-/*
+/**
  * Look up a node in a tree.
  *
  * Note that implementing the lookup algorithm as a macro gives two benefits:
@@ -155,7 +157,7 @@ MACRO_BEGIN                                             \
     ___cur;                                             \
 MACRO_END
 
-/*
+/**
  * Look up a node or one of its nearest nodes in a tree.
  *
  * This macro essentially acts as starpu_rbtree_lookup() but if no entry matched
@@ -191,7 +193,7 @@ MACRO_BEGIN                                                 \
     ___cur;                                                 \
 MACRO_END
 
-/*
+/**
  * Insert a node in a tree.
  *
  * This macro performs a standard lookup to obtain the insertion point of
@@ -227,7 +229,7 @@ MACRO_BEGIN                                                 \
     starpu_rbtree_insert_rebalance(tree, ___prev, ___index, node); \
 MACRO_END
 
-/*
+/**
  * Look up a node/slot pair in a tree.
  *
  * This macro essentially acts as starpu_rbtree_lookup() but in addition to a node,
@@ -263,7 +265,7 @@ MACRO_BEGIN                                         \
     ___cur;                                         \
 MACRO_END
 
-/*
+/**
  * Insert a node at an insertion point in a tree.
  *
  * This macro essentially acts as starpu_rbtree_insert() except that it doesn't
@@ -283,20 +285,20 @@ static inline void starpu_rbtree_insert_slot(struct starpu_rbtree *tree, uintptr
     starpu_rbtree_insert_rebalance(tree, parent, index, node);
 }
 
-/*
+/**
  * Remove a node from a tree.
  *
  * After completion, the node is stale.
  */
 void starpu_rbtree_remove(struct starpu_rbtree *tree, struct starpu_rbtree_node *node);
 
-/*
+/**
  * Return the first node of a tree.
  */
 /* TODO: optimize by maintaining the first node of the tree */
 #define starpu_rbtree_first(tree) starpu_rbtree_firstlast(tree, STARPU_RBTREE_LEFT)
 
-/*
+/**
  * Return the last node of a tree.
  */
 /* TODO: optimize by maintaining the first node of the tree */
@@ -304,17 +306,17 @@ void starpu_rbtree_remove(struct starpu_rbtree *tree, struct starpu_rbtree_node
  * bigger that the biggest node */
 #define starpu_rbtree_last(tree) starpu_rbtree_firstlast(tree, STARPU_RBTREE_RIGHT)
 
-/*
+/**
  * Return the node previous to the given node.
  */
 #define starpu_rbtree_prev(node) starpu_rbtree_walk(node, STARPU_RBTREE_LEFT)
 
-/*
+/**
  * Return the node next to the given node.
  */
 #define starpu_rbtree_next(node) starpu_rbtree_walk(node, STARPU_RBTREE_RIGHT)
 
-/*
+/**
  * Forge a loop to process all nodes of a tree, removing them when visited.
  *
  * This macro can only be used to destroy a tree, so that the resources used

+ 20 - 18
src/common/rbtree_i.h

@@ -28,7 +28,9 @@
 
 #include <assert.h>
 
-/*
+/** @file */
+
+/**
  * Red-black node structure.
  *
  * To reduce the number of branches and the instruction cache footprint,
@@ -47,34 +49,34 @@ struct starpu_rbtree_node {
     struct starpu_rbtree_node *children[2];
 };
 
-/*
+/**
  * Red-black tree structure.
  */
 struct starpu_rbtree {
     struct starpu_rbtree_node *root;
 };
 
-/*
+/**
  * Masks applied on the parent member of a node to obtain either the
  * color or the parent address.
  */
 #define STARPU_RBTREE_COLOR_MASK   ((uintptr_t) 0x1)
 #define STARPU_RBTREE_PARENT_MASK  (~((uintptr_t) 0x3))
 
-/*
+/**
  * Node colors.
  */
 #define STARPU_RBTREE_COLOR_RED    0
 #define STARPU_RBTREE_COLOR_BLACK  1
 
-/*
+/**
  * Masks applied on slots to obtain either the child index or the parent
  * address.
  */
 #define STARPU_RBTREE_SLOT_INDEX_MASK  ((uintptr_t) 0x1)
 #define STARPU_RBTREE_SLOT_PARENT_MASK (~STARPU_RBTREE_SLOT_INDEX_MASK)
 
-/*
+/**
  * Return true if the given pointer is suitably aligned.
  */
 static inline int starpu_rbtree_check_alignment(const struct starpu_rbtree_node *node)
@@ -82,7 +84,7 @@ static inline int starpu_rbtree_check_alignment(const struct starpu_rbtree_node
     return ((uintptr_t)node & (~STARPU_RBTREE_PARENT_MASK)) == 0;
 }
 
-/*
+/**
  * Return true if the given index is a valid child index.
  */
 static inline int starpu_rbtree_check_index(int index)
@@ -90,7 +92,7 @@ static inline int starpu_rbtree_check_index(int index)
     return index == (index & 1);
 }
 
-/*
+/**
  * Convert the result of a comparison into an index in the children array
  * (0 or 1).
  *
@@ -101,7 +103,7 @@ static inline int starpu_rbtree_d2i(int diff)
     return !(diff <= 0);
 }
 
-/*
+/**
  * Return the parent of a node.
  */
 static inline struct starpu_rbtree_node * starpu_rbtree_parent(const struct starpu_rbtree_node *node)
@@ -109,7 +111,7 @@ static inline struct starpu_rbtree_node * starpu_rbtree_parent(const struct star
     return (struct starpu_rbtree_node *)(node->parent & STARPU_RBTREE_PARENT_MASK);
 }
 
-/*
+/**
  * Translate an insertion point into a slot.
  */
 static inline uintptr_t starpu_rbtree_slot(struct starpu_rbtree_node *parent, int index)
@@ -119,7 +121,7 @@ static inline uintptr_t starpu_rbtree_slot(struct starpu_rbtree_node *parent, in
     return (uintptr_t)parent | index;
 }
 
-/*
+/**
  * Extract the parent address from a slot.
  */
 static inline struct starpu_rbtree_node * starpu_rbtree_slot_parent(uintptr_t slot)
@@ -127,7 +129,7 @@ static inline struct starpu_rbtree_node * starpu_rbtree_slot_parent(uintptr_t sl
     return (struct starpu_rbtree_node *)(slot & STARPU_RBTREE_SLOT_PARENT_MASK);
 }
 
-/*
+/**
  * Extract the index from a slot.
  */
 static inline int starpu_rbtree_slot_index(uintptr_t slot)
@@ -135,7 +137,7 @@ static inline int starpu_rbtree_slot_index(uintptr_t slot)
     return slot & STARPU_RBTREE_SLOT_INDEX_MASK;
 }
 
-/*
+/**
  * Insert a node in a tree, rebalancing it if necessary.
  *
  * The index parameter is the index in the children array of the parent where
@@ -146,7 +148,7 @@ static inline int starpu_rbtree_slot_index(uintptr_t slot)
 void starpu_rbtree_insert_rebalance(struct starpu_rbtree *tree, struct starpu_rbtree_node *parent,
                              int index, struct starpu_rbtree_node *node);
 
-/*
+/**
  * Return the previous or next node relative to a location in a tree.
  *
  * The parent and index parameters define the location, which can be empty.
@@ -156,7 +158,7 @@ void starpu_rbtree_insert_rebalance(struct starpu_rbtree *tree, struct starpu_rb
 struct starpu_rbtree_node * starpu_rbtree_nearest(struct starpu_rbtree_node *parent, int index,
                                     int direction);
 
-/*
+/**
  * Return the first or last node of a tree.
  *
  * The direction parameter is either STARPU_RBTREE_LEFT (to obtain the first node)
@@ -164,7 +166,7 @@ struct starpu_rbtree_node * starpu_rbtree_nearest(struct starpu_rbtree_node *par
  */
 struct starpu_rbtree_node * starpu_rbtree_firstlast(const struct starpu_rbtree *tree, int direction);
 
-/*
+/**
  * Return the node next to, or previous to the given node.
  *
  * The direction parameter is either STARPU_RBTREE_LEFT (to obtain the previous node)
@@ -172,13 +174,13 @@ struct starpu_rbtree_node * starpu_rbtree_firstlast(const struct starpu_rbtree *
  */
 struct starpu_rbtree_node * starpu_rbtree_walk(struct starpu_rbtree_node *node, int direction);
 
-/*
+/**
  * Return the left-most deepest node of a tree, which is the starting point of
  * the postorder traversal performed by starpu_rbtree_for_each_remove().
  */
 struct starpu_rbtree_node * starpu_rbtree_postwalk_deepest(const struct starpu_rbtree *tree);
 
-/*
+/**
  * Unlink a node from its tree and return the next (right) node in postorder.
  */
 struct starpu_rbtree_node * starpu_rbtree_postwalk_unlink(struct starpu_rbtree_node *node);

+ 9 - 7
src/common/rwlock.h

@@ -20,7 +20,9 @@
 #include <stdint.h>
 #include <starpu.h>
 
-/* Dummy implementation of a RW-lock using a spinlock. */
+/** @file */
+
+/** Dummy implementation of a RW-lock using a spinlock. */
 struct _starpu_rw_lock
 {
 	uint32_t busy;
@@ -28,24 +30,24 @@ struct _starpu_rw_lock
 	uint16_t readercnt;
 };
 
-/* Initialize the RW-lock */
+/** Initialize the RW-lock */
 void _starpu_init_rw_lock(struct _starpu_rw_lock *lock);
 
-/* Grab the RW-lock in a write mode */
+/** Grab the RW-lock in a write mode */
 void _starpu_take_rw_lock_write(struct _starpu_rw_lock *lock);
 
-/* Grab the RW-lock in a read mode */
+/** Grab the RW-lock in a read mode */
 void _starpu_take_rw_lock_read(struct _starpu_rw_lock *lock);
 
-/* Try to grab the RW-lock in a write mode. Returns 0 in case of success, -1
+/** Try to grab the RW-lock in a write mode. Returns 0 in case of success, -1
  * otherwise. */
 int _starpu_take_rw_lock_write_try(struct _starpu_rw_lock *lock);
 
-/* Try to grab the RW-lock in a read mode. Returns 0 in case of success, -1
+/** Try to grab the RW-lock in a read mode. Returns 0 in case of success, -1
  * otherwise. */
 int _starpu_take_rw_lock_read_try(struct _starpu_rw_lock *lock);
 
-/* Unlock the RW-lock. */
+/** Unlock the RW-lock. */
 void _starpu_release_rw_lock(struct _starpu_rw_lock *lock);
 
 #endif

+ 2 - 0
src/common/starpu_spinlock.h

@@ -16,6 +16,8 @@
 #ifndef __STARPU_SPINLOCK_H__
 #define __STARPU_SPINLOCK_H__
 
+/** @file */
+
 #include <errno.h>
 #include <stdint.h>
 #include <common/config.h>

+ 2 - 0
src/common/thread.h

@@ -17,6 +17,8 @@
 #ifndef __COMMON_THREAD_H__
 #define __COMMON_THREAD_H__
 
+/** @file */
+
 #include <common/utils.h>
 
 #if defined(STARPU_LINUX_SYS) && defined(STARPU_HAVE_XCHG)

+ 2 - 0
src/common/timing.h

@@ -17,6 +17,8 @@
 #ifndef TIMING_H
 #define TIMING_H
 
+/** @file */
+
 /*
  * _starpu_timing_init must be called prior to using any of these timing
  * functions.

+ 6 - 4
src/common/utils.h

@@ -17,6 +17,8 @@
 #ifndef __COMMON_UTILS_H__
 #define __COMMON_UTILS_H__
 
+/** @file */
+
 #include <common/config.h>
 #include <starpu.h>
 #include <sys/stat.h>
@@ -162,17 +164,17 @@ int _starpu_fwrunlock(FILE *file);
 char *_starpu_get_home_path(void);
 void _starpu_gethostname(char *hostname, size_t size);
 
-/* If FILE is currently on a comment line, eat it.  */
+/** If FILE is currently on a comment line, eat it.  */
 void _starpu_drop_comments(FILE *f);
 
 struct _starpu_job;
-/* Returns the symbol associated to that job if any. */
+/** Returns the symbol associated to that job if any. */
 const char *_starpu_job_get_model_name(struct _starpu_job *j);
-/* Returns the name associated to that job if any. */
+/** Returns the name associated to that job if any. */
 const char *_starpu_job_get_task_name(struct _starpu_job *j);
 
 struct starpu_codelet;
-/* Returns the symbol associated to that job if any. */
+/** Returns the symbol associated to that job if any. */
 const char *_starpu_codelet_get_model_name(struct starpu_codelet *cl);
 
 int _starpu_check_mutex_deadlock(starpu_pthread_mutex_t *mutex);

+ 2 - 0
src/core/combined_workers.h

@@ -17,6 +17,8 @@
 #ifndef __COMBINED_WORKERS_H__
 #define __COMBINED_WORKERS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 

+ 2 - 0
src/core/debug.h

@@ -17,6 +17,8 @@
 #ifndef __DEBUG_H__
 #define __DEBUG_H__
 
+/** @file */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>

+ 11 - 9
src/core/dependencies/cg.h

@@ -17,10 +17,12 @@
 #ifndef __CG_H__
 #define __CG_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 
-/* we do not necessarily want to allocate room for 256 dependencies, but we
+/** we do not necessarily want to allocate room for 256 dependencies, but we
    want to handle the few situation where there are a lot of dependencies as
    well */
 #define STARPU_DYNAMIC_DEPS_SIZE	1
@@ -32,30 +34,30 @@
 
 struct _starpu_job;
 
-/* Completion Group list, records both the number of expected notifications
+/** Completion Group list, records both the number of expected notifications
  * before the completion can start, and the list of successors when the
  * completion is finished. */
 struct _starpu_cg_list
 {
-	/* Protects atomicity of the list and the terminated flag */
+	/** Protects atomicity of the list and the terminated flag */
 	struct _starpu_spinlock lock;
 
-	/* Number of notifications to be waited for */
+	/** Number of notifications to be waited for */
 	unsigned ndeps; /* how many deps ? */
 	unsigned ndeps_completed; /* how many deps are done ? */
 #ifdef STARPU_DEBUG
-	/* Array of the notifications, size ndeps */
+	/** Array of the notifications, size ndeps */
 	struct _starpu_cg **deps;
-	/* Which ones have notified, size ndeps */
+	/** Which ones have notified, size ndeps */
 	char *done;
 #endif
 
-	/* Whether the completion is finished.
+	/** Whether the completion is finished.
 	 * For restartable/restarted tasks, only the first iteration is taken into account here.
 	 */
 	unsigned terminated;
 
-	/* List of successors */
+	/** List of successors */
 	unsigned nsuccs; /* how many successors ? */
 #ifdef STARPU_DYNAMIC_DEPS_SIZE
 	unsigned succ_list_size; /* How many allocated items in succ */
@@ -72,7 +74,7 @@ enum _starpu_cg_type
 	STARPU_CG_TASK=(1<<2)
 };
 
-/* Completion Group */
+/** Completion Group */
 struct _starpu_cg
 {
 	unsigned ntags; /* number of tags depended on */

+ 2 - 0
src/core/dependencies/data_concurrency.h

@@ -17,6 +17,8 @@
 #ifndef __DATA_CONCURRENCY_H__
 #define __DATA_CONCURRENCY_H__
 
+/** @file */
+
 #include <core/jobs.h>
 
 void _starpu_job_set_ordered_buffers(struct _starpu_job *j);

+ 4 - 2
src/core/dependencies/implicit_data_deps.h

@@ -17,6 +17,8 @@
 #ifndef __IMPLICIT_DATA_DEPS_H__
 #define __IMPLICIT_DATA_DEPS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 
@@ -30,10 +32,10 @@ void _starpu_release_task_enforce_sequential_consistency(struct _starpu_job *j);
 void _starpu_add_post_sync_tasks(struct starpu_task *post_sync_task, starpu_data_handle_t handle);
 void _starpu_unlock_post_sync_tasks(starpu_data_handle_t handle);
 
-/* Register a hook to be called when a write is submitted */
+/** Register a hook to be called when a write is submitted */
 void _starpu_implicit_data_deps_write_hook(void (*func)(starpu_data_handle_t));
 
-/* This function blocks until the handle is available in the requested mode */
+/** This function blocks until the handle is available in the requested mode */
 int _starpu_data_wait_until_available(starpu_data_handle_t handle, enum starpu_data_access_mode mode, const char *sync_name);
 
 void _starpu_data_clear_implicit(starpu_data_handle_t handle);

+ 2 - 0
src/core/dependencies/tags.h

@@ -17,6 +17,8 @@
 #ifndef __TAGS_H__
 #define __TAGS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <common/starpu_spinlock.h>

+ 3 - 1
src/core/detect_combined_workers.h

@@ -16,7 +16,9 @@
 
 #include <starpu.h>
 
-/* Initialize combined workers */
+/** @file */
+
+/** Initialize combined workers */
 void _starpu_sched_find_worker_combinations(int *workerids, int nworkers);
 
 extern int _starpu_initialized_combined_workers;

+ 10 - 10
src/core/disk.h

@@ -18,6 +18,8 @@
 #ifndef __DISK_H__
 #define __DISK_H__
 
+/** @file */
+
 #define STARPU_DISK_ALL 1
 #define STARPU_DISK_NO_RECLAIM 2
 
@@ -29,13 +31,13 @@ extern "C"
 #include <datawizard/copy_driver.h>
 #include <datawizard/malloc.h>
 
-/* interface to manipulate memory disk */
+/** interface to manipulate memory disk */
 void * _starpu_disk_alloc (unsigned node, size_t size) STARPU_ATTRIBUTE_MALLOC;
 
 void _starpu_disk_free (unsigned node, void *obj, size_t size);
-/* src_node is a disk node, dst_node is for the moment the STARPU_MAIN_RAM */
+/** src_node is a disk node, dst_node is for the moment the STARPU_MAIN_RAM */
 int _starpu_disk_read(unsigned src_node, unsigned dst_node, void *obj, void *buf, off_t offset, size_t size, struct _starpu_async_channel * async_channel);
-/* src_node is for the moment the STARU_MAIN_RAM, dst_node is a disk node */ 
+/** src_node is for the moment the STARU_MAIN_RAM, dst_node is a disk node */
 int _starpu_disk_write(unsigned src_node, unsigned dst_node, void *obj, void *buf, off_t offset, size_t size, struct _starpu_async_channel * async_channel);
 
 int _starpu_disk_full_read(unsigned src_node, unsigned dst_node, void * obj, void ** ptr, size_t * size, struct _starpu_async_channel * async_channel);
@@ -43,22 +45,20 @@ int _starpu_disk_full_write(unsigned src_node, unsigned dst_node, void * obj, vo
 
 int _starpu_disk_copy(unsigned node_src, void* obj_src, off_t offset_src, unsigned node_dst, void* obj_dst, off_t offset_dst, size_t size, struct _starpu_async_channel * async_channel);
 
-/* force the request to compute */
+/** force the request to compute */
 void starpu_disk_wait_request(struct _starpu_async_channel *async_channel);
-/* return 1 if the request is finished, 0 if not finished */
+/** return 1 if the request is finished, 0 if not finished */
 int starpu_disk_test_request(struct _starpu_async_channel *async_channel);
 void starpu_disk_free_request(struct _starpu_async_channel *async_channel);
 
-/* interface to compare memory disk */
+/** interface to compare memory disk */
 int _starpu_disk_can_copy(unsigned node1, unsigned node2);
 
-/* change disk flag */
-
+/** change disk flag */
 void _starpu_set_disk_flag(unsigned node, int flag);
 int _starpu_get_disk_flag(unsigned node);
 
-/* unregister disk */
-
+/** unregister disk */
 void _starpu_disk_unregister(void);
 
 void _starpu_swap_init(void);

+ 2 - 0
src/core/disk_ops/unistd/disk_unistd_global.h

@@ -18,6 +18,8 @@
 #ifndef __DISK_UNISTD_GLOBAL_H__
 #define __DISK_UNISTD_GLOBAL_H__
 
+/** @file */
+
 #include <fcntl.h>
 #ifdef __linux__
 #include <sys/syscall.h>

+ 2 - 0
src/core/drivers.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVERS_H__
 #define __DRIVERS_H__
 
+/** @file */
+
 struct _starpu_driver_ops
 {
 	int (*init)(struct _starpu_worker *worker);

+ 15 - 13
src/core/errorcheck.h

@@ -17,43 +17,45 @@
 #ifndef __ERRORCHECK_H__
 #define __ERRORCHECK_H__
 
+/** @file */
+
 #include <starpu.h>
 
-/* This type describes in which state a worker may be. */
+/** This type describes in which state a worker may be. */
 enum _starpu_worker_status
 {
-	/* invalid status (for instance if we request the status of some thread
+	/** invalid status (for instance if we request the status of some thread
 	 * that is not controlled by StarPU */
 	STATUS_INVALID,
-	/* everything that does not fit the other status */
+	/** everything that does not fit the other status */
 	STATUS_UNKNOWN,
-	/* during the initialization */
+	/** during the initialization */
 	STATUS_INITIALIZING,
-	/* during the execution of a codelet */
+	/** during the execution of a codelet */
 	STATUS_EXECUTING,
-	/* during the execution of the callback */
+	/** during the execution of the callback */
 	STATUS_CALLBACK,
-	/* while executing the scheduler code */
+	/** while executing the scheduler code */
 	STATUS_SCHEDULING,
-	/* while waiting for a data transfer */
+	/** while waiting for a data transfer */
 	STATUS_WAITING,
-	/* while sleeping because there is nothing to do, but looking for tasks to do */
+	/** while sleeping because there is nothing to do, but looking for tasks to do */
 	STATUS_SLEEPING_SCHEDULING,
-	/* while sleeping because there is nothing to do, and not even scheduling */
+	/** while sleeping because there is nothing to do, and not even scheduling */
 	STATUS_SLEEPING
 };
 
 struct _starpu_worker;
-/* Specify what the local worker is currently doing (eg. executing a callback).
+/** Specify what the local worker is currently doing (eg. executing a callback).
  * This permits to detect if this is legal to do a blocking call for instance.
  * */
 void _starpu_set_worker_status(struct _starpu_worker *worker, enum _starpu_worker_status st);
 void _starpu_set_local_worker_status(enum _starpu_worker_status st);
 
-/* Indicate what type of operation the worker is currently doing. */
+/** Indicate what type of operation the worker is currently doing. */
 enum _starpu_worker_status _starpu_get_local_worker_status(void);
 
-/* It is forbidden to do blocking calls during some operations such as callback
+/** It is forbidden to do blocking calls during some operations such as callback
  * or during the execution of a task. This function indicates whether it is
  * legal to call a blocking operation in the current context. */
 unsigned _starpu_worker_may_perform_blocking_calls(void);

+ 2 - 0
src/core/idle_hook.h

@@ -17,6 +17,8 @@
 #ifndef __IDLE_HOOK_H__
 #define __IDLE_HOOK_H__
 
+/** @file */
+
 void _starpu_init_idle_hooks(void);
 
 unsigned _starpu_execute_registered_idle_hooks(void);

+ 48 - 46
src/core/jobs.h

@@ -19,6 +19,8 @@
 #ifndef __JOBS_H__
 #define __JOBS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <semaphore.h>
 #include <stdio.h>
@@ -47,7 +49,7 @@
 
 struct _starpu_worker;
 
-/* codelet function */
+/** codelet function */
 typedef void (*_starpu_cl_func_t)(void **, void *);
 
 #define _STARPU_CPU_MAY_PERFORM(j)	((j)->task->where & STARPU_CPU)
@@ -59,12 +61,12 @@ struct _starpu_data_descr
 {
 	starpu_data_handle_t handle;
 	enum starpu_data_access_mode mode;
-	int node; /* This is the value actually chosen, only set by
+	int node; /** This is the value actually chosen, only set by
 		     _starpu_fetch_task_input for coherency with
 		     __starpu_push_task_output */
 	int index;
 
-	int orderedindex; /* For this field the array is actually indexed by
+	int orderedindex; /** For this field the array is actually indexed by
 			     parameter order, and this provides the ordered
 			     index */
 };
@@ -72,27 +74,27 @@ struct _starpu_data_descr
 #ifdef STARPU_DEBUG
 MULTILIST_CREATE_TYPE(_starpu_job, all_submitted)
 #endif
-/* A job is the internal representation of a task. */
+/** A job is the internal representation of a task. */
 struct _starpu_job
 {
-	/* Each job is attributed a unique id. */
+	/** Each job is attributed a unique id. */
 	unsigned long job_id;
 
-	/* The task associated to that job */
+	/** The task associated to that job */
 	struct starpu_task *task;
 
-        /* A task that this will unlock quickly, e.g. we are the pre_sync part
+        /** A task that this will unlock quickly, e.g. we are the pre_sync part
          * of a data acquisition, and the caller promised that data release will
 	 * happen immediately, so that the post_sync task will be started
          * immediately after. */
 	struct _starpu_job *quick_next;
 
-	/* These synchronization structures are used to wait for the job to be
+	/** These synchronization structures are used to wait for the job to be
 	 * available or terminated for instance. */
 	starpu_pthread_mutex_t sync_mutex;
 	starpu_pthread_cond_t sync_cond;
 
-	/* To avoid deadlocks, we reorder the different buffers accessed to by
+	/** To avoid deadlocks, we reorder the different buffers accessed to by
 	 * the task so that we always grab the rw-lock associated to the
 	 * handles in the same order. */
 	struct _starpu_data_descr ordered_buffers[STARPU_NMAXBUFS];
@@ -100,24 +102,24 @@ struct _starpu_job
 	struct _starpu_data_descr *dyn_ordered_buffers;
 	struct _starpu_task_wrapper_dlist *dyn_dep_slots;
 
-	/* If a tag is associated to the job, this points to the internal data
+	/** If a tag is associated to the job, this points to the internal data
 	 * structure that describes the tag status. */
 	struct _starpu_tag *tag;
 
-	/* Maintain a list of all the completion groups that depend on the job.
+	/** Maintain a list of all the completion groups that depend on the job.
 	 * */
 	struct _starpu_cg_list job_successors;
 
-	/* Task whose termination depends on this task */
+	/** Task whose termination depends on this task */
 	struct starpu_task *end_rdep;
 
-	/* For tasks with cl==NULL but submitted with explicit data dependency,
+	/** For tasks with cl==NULL but submitted with explicit data dependency,
 	 * the handle for this dependency, so as to remove the task from the
 	 * last_writer/readers */
 	starpu_data_handle_t implicit_dep_handle;
 	struct _starpu_task_wrapper_dlist implicit_dep_slot;
 
-	/* Indicates whether the task associated to that job has already been
+	/** Indicates whether the task associated to that job has already been
 	 * submitted to StarPU (1) or not (0) (using starpu_task_submit).
 	 * Becomes and stays 2 when the task is submitted several times.
 	 *
@@ -125,7 +127,7 @@ struct _starpu_job
 	 */
 	unsigned submitted:2;
 
-	/* Indicates whether the task associated to this job is terminated or
+	/** Indicates whether the task associated to this job is terminated or
 	 * not.
 	 *
 	 * Protected by j->sync_mutex.
@@ -133,15 +135,15 @@ struct _starpu_job
 	unsigned terminated:2;
 
 #ifdef STARPU_OPENMP
-	/* Job is a continuation or a regular task. */
+	/** Job is a continuation or a regular task. */
 	unsigned continuation;
 
-	/* If 0, the prepared continuation is not resubmitted automatically
+	/** If 0, the prepared continuation is not resubmitted automatically
 	 * when going to sleep, if 1, the prepared continuation is immediately
 	 * resubmitted when going to sleep. */
 	unsigned continuation_resubmit;
 
-	/* Callback function called when:
+	/** Callback function called when:
 	 * - The continuation starpu task is ready to be submitted again if
 	 *   continuation_resubmit = 0;
 	 * - The continuation starpu task has just been re-submitted if
@@ -152,53 +154,53 @@ struct _starpu_job
 	void (*omp_cleanup_callback)(void *arg);
 	void *omp_cleanup_callback_arg;
 
-	/* Job has been stopped at least once. */
+	/** Job has been stopped at least once. */
 	unsigned discontinuous;
 
-	/* Cumulated execution time for discontinuous jobs */
+	/** Cumulated execution time for discontinuous jobs */
 	struct timespec cumulated_ts;
 
-	/* Cumulated energy consumption for discontinuous jobs */
+	/** Cumulated energy consumption for discontinuous jobs */
 	double cumulated_energy_consumed;
 #endif
 
-	/* The value of the footprint that identifies the job may be stored in
+	/** The value of the footprint that identifies the job may be stored in
 	 * this structure. */
 	uint32_t footprint;
 	unsigned footprint_is_computed:1;
 
-	/* Should that task appear in the debug tools ? (eg. the DAG generated
+	/** Should that task appear in the debug tools ? (eg. the DAG generated
 	 * with dot) */
 	unsigned exclude_from_dag:1;
 
-	/* Is that task internal to StarPU? */
+	/** Is that task internal to StarPU? */
 	unsigned internal:1;
-	/* Did that task use sequential consistency for its data? */
+	/** Did that task use sequential consistency for its data? */
 	unsigned sequential_consistency:1;
 
-	/* During the reduction of a handle, StarPU may have to submit tasks to
+	/** During the reduction of a handle, StarPU may have to submit tasks to
 	 * perform the reduction itself: those task should not be stalled while
 	 * other tasks are blocked until the handle has been properly reduced,
 	 * so we need a flag to differentiate them from "normal" tasks. */
 	unsigned reduction_task:1;
 
-	/* The implementation associated to the job */
+	/** The implementation associated to the job */
 	unsigned nimpl;
 
-	/* Number of workers executing that task (>1 if the task is parallel)
+	/** Number of workers executing that task (>1 if the task is parallel)
 	 * */
 	int task_size;
 
-	/* In case we have assigned this job to a combined workerid */
+	/** In case we have assigned this job to a combined workerid */
 	int combined_workerid;
 
-	/* How many workers are currently running an alias of that job (for
+	/** How many workers are currently running an alias of that job (for
 	 * parallel tasks only). */
 	int active_task_alias_count;
 
 	struct bound_task *bound_task;
 
-	/* Parallel workers may have to synchronize before/after the execution of a parallel task. */
+	/** Parallel workers may have to synchronize before/after the execution of a parallel task. */
 	starpu_pthread_barrier_t before_work_barrier;
 	starpu_pthread_barrier_t after_work_barrier;
 	unsigned after_work_busy_barrier;
@@ -206,7 +208,7 @@ struct _starpu_job
 	struct _starpu_graph_node *graph_node;
 
 #ifdef STARPU_DEBUG
-	/* Linked-list of all jobs, for debugging */
+	/** Linked-list of all jobs, for debugging */
 	struct _starpu_job_multilist_all_submitted all_submitted;
 #endif
 };
@@ -218,23 +220,23 @@ MULTILIST_CREATE_INLINES(struct _starpu_job, _starpu_job, all_submitted)
 void _starpu_job_init(void);
 void _starpu_job_fini(void);
 
-/* Create an internal struct _starpu_job *structure to encapsulate the task. */
+/** Create an internal struct _starpu_job *structure to encapsulate the task. */
 struct _starpu_job* _starpu_job_create(struct starpu_task *task) STARPU_ATTRIBUTE_MALLOC;
 
-/* Destroy the data structure associated to the job structure */
+/** Destroy the data structure associated to the job structure */
 void _starpu_job_destroy(struct _starpu_job *j);
 
-/* Test for the termination of the job */
+/** Test for the termination of the job */
 int _starpu_job_finished(struct _starpu_job *j);
 
-/* Wait for the termination of the job */
+/** Wait for the termination of the job */
 void _starpu_wait_job(struct _starpu_job *j);
 
 #ifdef STARPU_OPENMP
-/* Test for the termination of the job */
+/** Test for the termination of the job */
 int _starpu_test_job_termination(struct _starpu_job *j);
 
-/* Prepare the job for accepting new dependencies before becoming a continuation. */
+/** Prepare the job for accepting new dependencies before becoming a continuation. */
 
 void _starpu_job_prepare_for_continuation_ext(struct _starpu_job *j, unsigned continuation_resubmit,
 		void (*continuation_callback_on_sleep)(void *arg), void *continuation_callback_on_sleep_arg);
@@ -243,33 +245,33 @@ void _starpu_job_set_omp_cleanup_callback(struct _starpu_job *j,
 		void (*omp_cleanup_callback)(void *arg), void *omp_cleanup_callback_arg);
 #endif
 
-/* Specify that the task should not appear in the DAG generated by debug tools. */
+/** Specify that the task should not appear in the DAG generated by debug tools. */
 void _starpu_exclude_task_from_dag(struct starpu_task *task);
 
-/* try to submit job j, enqueue it if it's not schedulable yet. The job's sync mutex is supposed to be held already */
+/** try to submit job j, enqueue it if it's not schedulable yet. The job's sync mutex is supposed to be held already */
 unsigned _starpu_enforce_deps_and_schedule(struct _starpu_job *j);
 unsigned _starpu_enforce_deps_starting_from_task(struct _starpu_job *j);
 #ifdef STARPU_OPENMP
-/* When waking up a continuation, we only enforce new task dependencies */
+/** When waking up a continuation, we only enforce new task dependencies */
 unsigned _starpu_reenforce_task_deps_and_schedule(struct _starpu_job *j);
 #endif
 unsigned _starpu_take_deps_and_schedule(struct _starpu_job *j);
 void _starpu_enforce_deps_notify_job_ready_soon(struct _starpu_job *j, _starpu_notify_job_start_data *data, int tag);
 
-/* Called at the submission of the job */
+/** Called at the submission of the job */
 void _starpu_handle_job_submission(struct _starpu_job *j);
-/* This function must be called after the execution of a job, this triggers all
+/** This function must be called after the execution of a job, this triggers all
  * job's dependencies and perform the callback function if any. */
 void _starpu_handle_job_termination(struct _starpu_job *j);
 
-/* Get the sum of the size of the data accessed by the job. */
+/** Get the sum of the size of the data accessed by the job. */
 size_t _starpu_job_get_data_size(struct starpu_perfmodel *model, struct starpu_perfmodel_arch* arch, unsigned nimpl, struct _starpu_job *j);
 
-/* Get a task from the local pool of tasks that were explicitly attributed to
+/** Get a task from the local pool of tasks that were explicitly attributed to
  * that worker. */
 struct starpu_task *_starpu_pop_local_task(struct _starpu_worker *worker);
 
-/* Put a task into the pool of tasks that are explicitly attributed to the
+/** Put a task into the pool of tasks that are explicitly attributed to the
  * specified worker. If "back" is set, the task is put at the back of the list.
  * Considering the tasks are popped from the back, this value should be 0 to
  * enforce a FIFO ordering. */

+ 2 - 0
src/core/perfmodel/multiple_regression.h

@@ -17,6 +17,8 @@
 #ifndef __MULTIPLE_REGRESSION_H__
 #define __MULTIPLE_REGRESSION_H__
 
+/** @file */
+
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>

+ 2 - 0
src/core/perfmodel/perfmodel.h

@@ -19,6 +19,8 @@
 #ifndef __PERFMODEL_H__
 #define __PERFMODEL_H__
 
+/** @file */
+
 #include <common/config.h>
 #include <starpu.h>
 #include <core/task_bundle.h>

+ 3 - 1
src/core/perfmodel/regression.h

@@ -17,6 +17,8 @@
 #ifndef __REGRESSION_H__
 #define __REGRESSION_H__
 
+/** @file */
+
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -25,4 +27,4 @@
 
 int _starpu_regression_non_linear_power(struct starpu_perfmodel_history_list *ptr, double *a, double *b, double *c);
 
-#endif // __REGRESSION_H__ 
+#endif // __REGRESSION_H__

+ 2 - 0
src/core/progress_hook.h

@@ -17,6 +17,8 @@
 #ifndef __PROGRESS_HOOK_H__
 #define __PROGRESS_HOOK_H__
 
+/** @file */
+
 void _starpu_init_progression_hooks(void);
 
 unsigned _starpu_execute_registered_progression_hooks(void);

+ 51 - 49
src/core/sched_ctx.h

@@ -18,6 +18,8 @@
 #ifndef __SCHED_CONTEXT_H__
 #define __SCHED_CONTEXT_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_sched_ctx.h>
 #include <starpu_sched_ctx_hypervisor.h>
@@ -42,39 +44,39 @@
 #define STARPU_NMAXSMS 13
 struct _starpu_sched_ctx
 {
-	/* id of the context used in user mode*/
+	/** id of the context used in user mode*/
 	unsigned id;
 
-	/* boolean indicating whether the scheduling_ctx will be considered for scheduling (1) or not (0)*/
+	/** boolean indicating whether the scheduling_ctx will be considered for scheduling (1) or not (0)*/
 	unsigned do_schedule;
 
-	/* name of context */
+	/** name of context */
 	const char *name;
 
-	/* policy of the context */
+	/** policy of the context */
 	struct starpu_sched_policy *sched_policy;
 
-	/* data necessary for the policy */
+	/** data necessary for the policy */
 	void *policy_data;
 
-	/* pointer for application use */
+	/** pointer for application use */
 	void *user_data;
 
 	struct starpu_worker_collection *workers;
 
-	/* we keep an initial sched which we never delete */
+	/** we keep an initial sched which we never delete */
 	unsigned is_initial_sched;
 
-	/* wait for the tasks submitted to the context to be executed */
+	/** wait for the tasks submitted to the context to be executed */
 	struct _starpu_barrier_counter tasks_barrier;
 
-	/* wait for the tasks ready of the context to be executed */
+	/** wait for the tasks ready of the context to be executed */
 	struct _starpu_barrier_counter ready_tasks_barrier;
 
-	/* amount of ready flops in a context */
+	/** amount of ready flops in a context */
 	double ready_flops;
 
-	/* Iteration number, as advertised by application */
+	/** Iteration number, as advertised by application */
 	long iterations[2];
 	int iteration_level;
 
@@ -84,76 +86,76 @@ struct _starpu_sched_ctx
 	/*ready tasks that couldn't be pushed because the the window of tasks was already full*/
 	struct starpu_task_list waiting_tasks;
 
-	/* min CPUs to execute*/
+	/** min CPUs to execute*/
 	int min_ncpus;
 
-	/* max CPUs to execute*/
+	/** max CPUs to execute*/
 	int max_ncpus;
 
-	/* min GPUs to execute*/
+	/** min GPUs to execute*/
 	int min_ngpus;
 
-	/* max GPUs to execute*/
+	/** max GPUs to execute*/
 	int max_ngpus;
 
-	/* in case we delete the context leave resources to the inheritor*/
+	/** in case we delete the context leave resources to the inheritor*/
 	unsigned inheritor;
 
-	/* indicates whether the application finished submitting tasks
+	/** indicates whether the application finished submitting tasks
 	   to this context*/
 	unsigned finished_submit;
 
-        /* By default we have a binary type of priority: either a task is a priority
+        /** By default we have a binary type of priority: either a task is a priority
          * task (level 1) or it is not (level 0). */
      	int min_priority;
 	int max_priority;
      	int min_priority_is_set;
 	int max_priority_is_set;
 
-	/* hwloc tree structure of workers */
+	/** hwloc tree structure of workers */
 #ifdef STARPU_HAVE_HWLOC
 	hwloc_bitmap_t hwloc_workers_set;
 #endif
 
 #ifdef STARPU_USE_SC_HYPERVISOR
-	/* a structure containing a series of performance counters determining the resize procedure */
+	/** a structure containing a series of performance counters determining the resize procedure */
 	struct starpu_sched_ctx_performance_counters *perf_counters;
 #endif //STARPU_USE_SC_HYPERVISOR
 
-	/* callback called when the context finished executed its submitted tasks */
+	/** callback called when the context finished executed its submitted tasks */
 	void (*close_callback)(unsigned sched_ctx_id, void* args);
 	void *close_args;
-	
-	/* value placing the contexts in their hierarchy */
+
+	/** value placing the contexts in their hierarchy */
 	unsigned hierarchy_level;
 
-	/* if we execute non-StarPU code inside the context 
-	   we have a single master worker that stays awake, 
+	/** if we execute non-StarPU code inside the context
+	   we have a single master worker that stays awake,
 	   if not master is -1 */
 	int main_master;
 
-	/* ctx nesting the current ctx */
+	/** ctx nesting the current ctx */
 	unsigned nesting_sched_ctx;
 
-	/* perf model for the device comb of the ctx */
+	/** perf model for the device comb of the ctx */
 	struct starpu_perfmodel_arch perf_arch;
 
-	/* For parallel workers, say whether it is viewed as sequential or not. This
+	/** For parallel workers, say whether it is viewed as sequential or not. This
 		 is a helper for the prologue code. */
 	unsigned parallel_view;
 
-	/* for ctxs without policy: flag to indicate that we want to get
+	/** for ctxs without policy: flag to indicate that we want to get
 	   the threads to sleep in order to replace them with other threads or leave
 	   them awake & use them in the parallel code*/
 	unsigned awake_workers;
 
-	/* function called when initializing the scheduler */
+	/** function called when initializing the scheduler */
 	void (*init_sched)(unsigned);
 
 	int sub_ctxs[STARPU_NMAXWORKERS];
 	int nsub_ctxs;
 
-	/* nr of SMs assigned to this ctx if we partition gpus*/
+	/** nr of SMs assigned to this ctx if we partition gpus*/
 	int nsms;
 	int sms_start_idx;
 	int sms_end_idx;
@@ -164,7 +166,7 @@ struct _starpu_sched_ctx
 	starpu_pthread_t lock_write_owner;
 };
 
-/* per-worker list of deferred ctx_change ops */
+/** per-worker list of deferred ctx_change ops */
 LIST_TYPE(_starpu_ctx_change,
 	int sched_ctx_id;
 	int op;
@@ -176,26 +178,26 @@ LIST_TYPE(_starpu_ctx_change,
 
 struct _starpu_machine_config;
 
-/* init sched_ctx_id of all contextes*/
+/** init sched_ctx_id of all contextes*/
 void _starpu_init_all_sched_ctxs(struct _starpu_machine_config *config);
 
-/* allocate all structures belonging to a context */
+/** allocate all structures belonging to a context */
 struct _starpu_sched_ctx*  _starpu_create_sched_ctx(struct starpu_sched_policy *policy, int *workerid, int nworkerids, unsigned is_init_sched, const char *sched_name,
 						    int min_prio_set, int min_prio,
 						    int max_prio_set, int max_prio, unsigned awake_workers, void (*sched_policy_init)(unsigned), void *user_data,
 							int nsub_ctxs, int *sub_ctxs, int nsms);
 
-/* delete all sched_ctx */
+/** delete all sched_ctx */
 void _starpu_delete_all_sched_ctxs();
 
-/* This function waits until all the tasks that were already submitted to a specific
+/** This function waits until all the tasks that were already submitted to a specific
  * context have been executed. */
 int _starpu_wait_for_all_tasks_of_sched_ctx(unsigned sched_ctx_id);
 
-/* This function waits until at most n tasks are still submitted. */
+/** This function waits until at most n tasks are still submitted. */
 int _starpu_wait_for_n_submitted_tasks_of_sched_ctx(unsigned sched_ctx_id, unsigned n);
 
-/* In order to implement starpu_wait_for_all_tasks_of_ctx, we keep track of the number of
+/** In order to implement starpu_wait_for_all_tasks_of_ctx, we keep track of the number of
  * task currently submitted to the context */
 void _starpu_decrement_nsubmitted_tasks_of_sched_ctx(unsigned sched_ctx_id);
 void _starpu_increment_nsubmitted_tasks_of_sched_ctx(unsigned sched_ctx_id);
@@ -206,32 +208,32 @@ void _starpu_decrement_nready_tasks_of_sched_ctx(unsigned sched_ctx_id, double r
 unsigned _starpu_increment_nready_tasks_of_sched_ctx(unsigned sched_ctx_id, double ready_flops, struct starpu_task *task);
 int _starpu_wait_for_no_ready_of_sched_ctx(unsigned sched_ctx_id);
 
-/* Return the corresponding index of the workerid in the ctx table */
+/** Return the corresponding index of the workerid in the ctx table */
 int _starpu_get_index_in_ctx_of_workerid(unsigned sched_ctx, unsigned workerid);
 
-/* Get the mutex corresponding to the global workerid */
+/** Get the mutex corresponding to the global workerid */
 starpu_pthread_mutex_t *_starpu_get_sched_mutex(struct _starpu_sched_ctx *sched_ctx, int worker);
 
-/* Get workers belonging to a certain context, it returns the number of workers
+/** Get workers belonging to a certain context, it returns the number of workers
  take care: no mutex taken, the list of workers might not be updated */
 int _starpu_get_workers_of_sched_ctx(unsigned sched_ctx_id, int *pus, enum starpu_worker_archtype arch);
 
-/* Let the worker know it does not belong to the context and that
+/** Let the worker know it does not belong to the context and that
    it should stop poping from it */
 void _starpu_worker_gets_out_of_ctx(unsigned sched_ctx_id, struct _starpu_worker *worker);
 
-/* Check if the worker belongs to another sched_ctx */
+/** Check if the worker belongs to another sched_ctx */
 unsigned _starpu_worker_belongs_to_a_sched_ctx(int workerid, unsigned sched_ctx_id);
 
-/* indicates wheather this worker should go to sleep or not 
+/** indicates wheather this worker should go to sleep or not
    (if it is the last one awake in a context he should better keep awake) */
 unsigned _starpu_sched_ctx_last_worker_awake(struct _starpu_worker *worker);
 
-/* If starpu_sched_ctx_set_context() has been called, returns the context
+/** If starpu_sched_ctx_set_context() has been called, returns the context
  * id set by its last call, or the id of the initial context */
 unsigned _starpu_sched_ctx_get_current_context();
 
-/* verify that some worker can execute a certain task */
+/** verify that some worker can execute a certain task */
 int _starpu_workers_able_to_execute_task(struct starpu_task *task, struct _starpu_sched_ctx *sched_ctx);
 
 void _starpu_fetch_tasks_from_empty_ctx_list(struct _starpu_sched_ctx *sched_ctx);
@@ -240,14 +242,14 @@ unsigned _starpu_sched_ctx_allow_hypervisor(unsigned sched_ctx_id);
 
 struct starpu_perfmodel_arch * _starpu_sched_ctx_get_perf_archtype(unsigned sched_ctx);
 #ifdef STARPU_USE_SC_HYPERVISOR
-/* Notifies the hypervisor that a tasks was poped from the workers' list */
+/** Notifies the hypervisor that a tasks was poped from the workers' list */
 void _starpu_sched_ctx_post_exec_task_cb(int workerid, struct starpu_task *task, size_t data_size, uint32_t footprint);
 
 #endif //STARPU_USE_SC_HYPERVISOR
 
 void starpu_sched_ctx_add_combined_workers(int *combined_workers_to_add, unsigned n_combined_workers_to_add, unsigned sched_ctx_id);
 
-/* if the worker is the master of a parallel context, and the job is meant to be executed on this parallel context, return a pointer to the context */
+/** if the worker is the master of a parallel context, and the job is meant to be executed on this parallel context, return a pointer to the context */
 struct _starpu_sched_ctx *__starpu_sched_ctx_get_sched_ctx_for_worker_and_job(struct _starpu_worker *worker, struct _starpu_job *j);
 
 #define _starpu_sched_ctx_get_sched_ctx_for_worker_and_job(w,j) \
@@ -312,7 +314,7 @@ static inline unsigned _starpu_sched_ctx_worker_is_master_for_child_ctx(unsigned
 	return 0;
 }
 
-/* Go through the list of deferred ctx changes of the current worker and apply
+/** Go through the list of deferred ctx changes of the current worker and apply
  * any ctx change operation found until the list is empty */
 void _starpu_worker_apply_deferred_ctx_changes(void);
 #endif // __SCHED_CONTEXT_H__

+ 8 - 6
src/core/sched_ctx_list.h

@@ -17,7 +17,9 @@
 #ifndef __SCHED_CONTEXT_LIST_H__
 #define __SCHED_CONTEXT_LIST_H__
 
-/* Represents a non circular list of priorities and contains a list of sched context */
+/** @file */
+
+/** Represents a non circular list of priorities and contains a list of sched context */
 struct _starpu_sched_ctx_elt;
 struct _starpu_sched_ctx_list
 {
@@ -27,7 +29,7 @@ struct _starpu_sched_ctx_list
 	unsigned priority;
 };
 
-/* Represents a circular list of sched context. */
+/** Represents a circular list of sched context. */
 struct _starpu_sched_ctx_elt
 {
 	struct _starpu_sched_ctx_elt *prev;
@@ -44,7 +46,7 @@ struct _starpu_sched_ctx_list_iterator
 	struct _starpu_sched_ctx_elt *cursor;
 };
 
-/* Element (sched_ctx) level operations */
+/** Element (sched_ctx) level operations */
 struct _starpu_sched_ctx_elt* _starpu_sched_ctx_elt_find(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 void _starpu_sched_ctx_elt_ensure_consistency(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 void _starpu_sched_ctx_elt_init(struct _starpu_sched_ctx_elt *elt, unsigned sched_ctx);
@@ -56,7 +58,7 @@ int _starpu_sched_ctx_elt_exists(struct _starpu_sched_ctx_list *list, unsigned s
 int _starpu_sched_ctx_elt_get_priority(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 
 
-/* List (priority) level operations */
+/** List (priority) level operations */
 struct _starpu_sched_ctx_list* _starpu_sched_ctx_list_find(struct _starpu_sched_ctx_list *list, unsigned prio);
 struct _starpu_sched_ctx_elt* _starpu_sched_ctx_list_add_prio(struct _starpu_sched_ctx_list **list, unsigned prio, unsigned sched_ctx);
 int _starpu_sched_ctx_list_add(struct _starpu_sched_ctx_list **list, unsigned sched_ctx);
@@ -67,12 +69,12 @@ int _starpu_sched_ctx_list_exists(struct _starpu_sched_ctx_list *list, unsigned
 void _starpu_sched_ctx_list_remove_all(struct _starpu_sched_ctx_list *list);
 void _starpu_sched_ctx_list_delete(struct _starpu_sched_ctx_list **list);
 
-/* Task number management */
+/** Task number management */
 int _starpu_sched_ctx_list_push_event(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 int _starpu_sched_ctx_list_pop_event(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 int _starpu_sched_ctx_list_pop_all_event(struct _starpu_sched_ctx_list *list, unsigned sched_ctx);
 
-/* Iterator operations */
+/** Iterator operations */
 int _starpu_sched_ctx_list_iterator_init(struct _starpu_sched_ctx_list *list, struct _starpu_sched_ctx_list_iterator *it);
 int _starpu_sched_ctx_list_iterator_has_next(struct _starpu_sched_ctx_list_iterator *it);
 struct _starpu_sched_ctx_elt* _starpu_sched_ctx_list_iterator_get_next(struct _starpu_sched_ctx_list_iterator *it);

+ 5 - 3
src/core/sched_policy.h

@@ -18,6 +18,8 @@
 #ifndef __SCHED_POLICY_H__
 #define __SCHED_POLICY_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <signal.h>
 #include <core/workers.h>
@@ -51,12 +53,12 @@ void _starpu_sched_do_schedule(unsigned sched_ctx_id);
 int _starpu_push_task(struct _starpu_job *task);
 int _starpu_repush_task(struct _starpu_job *task);
 
-/* actually pushes the tasks to the specific worker or to the scheduler */
+/** actually pushes the tasks to the specific worker or to the scheduler */
 int _starpu_push_task_to_workers(struct starpu_task *task);
 
-/* pop a task that can be executed on the worker */
+/** pop a task that can be executed on the worker */
 struct starpu_task *_starpu_pop_task(struct _starpu_worker *worker);
-/* pop every task that can be executed on the worker */
+/** pop every task that can be executed on the worker */
 struct starpu_task *_starpu_pop_every_task(struct _starpu_sched_ctx *sched_ctx);
 void _starpu_sched_post_exec_hook(struct starpu_task *task);
 int _starpu_pop_task_end(struct starpu_task *task);

+ 4 - 2
src/core/simgrid.h

@@ -18,6 +18,8 @@
 #ifndef __SIMGRID_H__
 #define __SIMGRID_H__
 
+/** @file */
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -97,7 +99,7 @@ extern starpu_pthread_queue_t _starpu_simgrid_task_queue[STARPU_NMAXWORKERS];
 #define _starpu_simgrid_fetching_input_cost() starpu_get_env_number_default("STARPU_SIMGRID_FETCHING_INPUT_COST", 1)
 #define _starpu_simgrid_sched_cost() starpu_get_env_number_default("STARPU_SIMGRID_SCHED_COST", 0)
 
-/* Called at initialization to count how many GPUs are interfering with each
+/** Called at initialization to count how many GPUs are interfering with each
  * bus */
 void _starpu_simgrid_count_ngpus(void);
 
@@ -124,7 +126,7 @@ void _starpu_simgrid_xbt_thread_create(const char *name, void_f_pvoid_t code,
 #define _SIMGRID_TIMER_END }
 #endif
 
-/* Experimental functions for OOC stochastic analysis */
+/** Experimental functions for OOC stochastic analysis */
 /* disk <-> MAIN_RAM only */
 #if defined(STARPU_SIMGRID) && 0
 void _starpu_simgrid_data_new(size_t size);

+ 8 - 6
src/core/task.h

@@ -17,20 +17,22 @@
 #ifndef __CORE_TASK_H__
 #define __CORE_TASK_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <core/jobs.h>
 
-/* Internal version of starpu_task_destroy: don't check task->destroy flag */
+/** Internal version of starpu_task_destroy: don't check task->destroy flag */
 void _starpu_task_destroy(struct starpu_task *task);
 
 #ifdef STARPU_OPENMP
-/* Test for the termination of the task.
+/** Test for the termination of the task.
  * Call starpu_task_destroy if required and the task is terminated. */
 int _starpu_task_test_termination(struct starpu_task *task);
 #endif
 
-/* A pthread key is used to store the task currently executed on the thread.
+/** A pthread key is used to store the task currently executed on the thread.
  * _starpu_task_init initializes this pthread key and
  * _starpu_set_current_task updates its current value. */
 void _starpu_task_init(void);
@@ -41,7 +43,7 @@ int _starpu_submit_job(struct _starpu_job *j, int nodeps);
 
 void _starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[], int check);
 
-/* Returns the job structure (which is the internal data structure associated
+/** Returns the job structure (which is the internal data structure associated
  * to a task). */
 static inline struct _starpu_job *_starpu_get_job_associated_to_task(struct starpu_task *task)
 {
@@ -57,7 +59,7 @@ static inline struct _starpu_job *_starpu_get_job_associated_to_task(struct star
 	return job;
 }
 
-/* Submits starpu internal tasks to the initial context */
+/** Submits starpu internal tasks to the initial context */
 int _starpu_task_submit_internally(struct starpu_task *task);
 
 int _starpu_handle_needs_conversion_task(starpu_data_handle_t handle,
@@ -67,7 +69,7 @@ _starpu_handle_needs_conversion_task_for_arch(starpu_data_handle_t handle,
 				     enum starpu_node_kind node_kind);
 
 #ifdef STARPU_OPENMP
-/* Prepare the current task for accepting new dependencies before becoming a continuation. */
+/** Prepare the current task for accepting new dependencies before becoming a continuation. */
 void _starpu_task_prepare_for_continuation_ext(unsigned continuation_resubmit,
 		void (*continuation_callback_on_sleep)(void *arg), void *continuation_callback_on_sleep_arg);
 

+ 8 - 6
src/core/task_bundle.h

@@ -17,9 +17,11 @@
 #ifndef __CORE_TASK_BUNDLE_H__
 #define __CORE_TASK_BUNDLE_H__
 
+/** @file */
+
 #include <starpu_thread.h>
 
-/* struct _starpu_task_bundle_entry
+/** struct _starpu_task_bundle_entry
  * ================================
  * Purpose
  * =======
@@ -38,7 +40,7 @@ struct _starpu_task_bundle_entry
 	struct _starpu_task_bundle_entry *next;
 };
 
-/* struct _starpu_task_bundle
+/** struct _starpu_task_bundle
  * ==========================
  * Purpose
  * =======
@@ -60,7 +62,7 @@ struct _starpu_task_bundle_entry
 
 struct _starpu_task_bundle
 {
-	/* Mutex protecting the bundle */
+	/** Mutex protecting the bundle */
 	starpu_pthread_mutex_t mutex;
 
 	struct _starpu_task_bundle_entry *list;
@@ -68,7 +70,7 @@ struct _starpu_task_bundle
 	int closed;
 };
 
-/* struct _starpu_handle_list
+/** struct _starpu_handle_list
  * ==========================
  * Purpose
  * =======
@@ -92,7 +94,7 @@ struct _starpu_handle_list
 	struct _starpu_handle_list *next;
 };
 
-/* _starpu_task_bundle_destroy
+/** _starpu_task_bundle_destroy
  * ==========================
  * Purpose
  * =======
@@ -106,7 +108,7 @@ struct _starpu_handle_list
  */
 void _starpu_task_bundle_destroy(starpu_task_bundle_t bundle);
 
-/* _insertion_handle_sorted
+/** _insertion_handle_sorted
  * ========================
  * Purpose
  * =======

+ 17 - 15
src/core/topology.h

@@ -17,59 +17,61 @@
 #ifndef __TOPOLOGY_H__
 #define __TOPOLOGY_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <common/list.h>
 #include <common/fxt.h>
 
-/* TODO actually move this struct into this header */
+/** TODO actually move this struct into this header */
 struct _starpu_machine_config;
 
 #ifndef STARPU_SIMGRID
 #ifdef STARPU_HAVE_HWLOC
-/* This is allocated for each hwloc object */
+/** This is allocated for each hwloc object */
 struct _starpu_hwloc_userdata
 {
-	struct _starpu_worker_list *worker_list; /* List of workers running on this obj */
-	unsigned ngpus; /* Number of GPUs sharing this PCI link */
-	struct _starpu_worker *pu_worker; /* Worker running this PU */
+	struct _starpu_worker_list *worker_list; /** List of workers running on this obj */
+	unsigned ngpus; /** Number of GPUs sharing this PCI link */
+	struct _starpu_worker *pu_worker; /** Worker running this PU */
 };
 #endif
 #endif
 
-/* Detect the number of memory nodes and where to bind the different workers. */
+/** Detect the number of memory nodes and where to bind the different workers. */
 int _starpu_build_topology(struct _starpu_machine_config *config, int no_mp_config);
 
-/* Should be called instead of _starpu_destroy_topology when _starpu_build_topology returns a non zero value. */
+/** Should be called instead of _starpu_destroy_topology when _starpu_build_topology returns a non zero value. */
 void _starpu_destroy_machine_config(struct _starpu_machine_config *config);
 
-/* Destroy all resources used to store the topology of the machine. */
+/** Destroy all resources used to store the topology of the machine. */
 void _starpu_destroy_topology(struct _starpu_machine_config *config);
 
-/* returns the number of physical cpus */
+/** returns the number of physical cpus */
 unsigned _starpu_topology_get_nhwcpu(struct _starpu_machine_config *config);
 
-/* returns the number of logical cpus */
+/** returns the number of logical cpus */
 unsigned _starpu_topology_get_nhwpu(struct _starpu_machine_config *config);
 
-/* returns the number of NUMA nodes */
+/** returns the number of NUMA nodes */
 unsigned _starpu_topology_get_nnumanodes(struct _starpu_machine_config *config);
 
 #ifdef STARPU_HAVE_HWLOC
-/* Small convenient function to filter hwloc topology depending on HWLOC API version */
+/** Small convenient function to filter hwloc topology depending on HWLOC API version */
 void _starpu_topology_filter(hwloc_topology_t topology);
 #endif
 
 #define STARPU_NOWORKERID -1
 #define STARPU_ACTIVETHREAD -2
 #define STARPU_NONACTIVETHREAD -2
-/* Bind the current thread on the CPU logically identified by "cpuid". The
+/** Bind the current thread on the CPU logically identified by "cpuid". The
  * logical ordering of the processors is either that of hwloc (if available),
  * or the ordering exposed by the OS. */
 int _starpu_bind_thread_on_cpu(int cpuid, int workerid, const char *name);
 
 struct _starpu_combined_worker;
-/* Bind the current thread on the set of CPUs for the given combined worker. */
+/** Bind the current thread on the set of CPUs for the given combined worker. */
 void _starpu_bind_thread_on_cpus(struct _starpu_combined_worker *combined_worker);
 
 struct _starpu_worker *_starpu_get_worker_from_driver(struct starpu_driver *d);
@@ -77,7 +79,7 @@ struct _starpu_worker *_starpu_get_worker_from_driver(struct starpu_driver *d);
 int starpu_memory_nodes_get_numa_count(void);
 int starpu_memory_nodes_numa_id_to_hwloclogid(unsigned id);
 
-/* Get the memory node for data number i when task is to be executed on memory node target_node */
+/** Get the memory node for data number i when task is to be executed on memory node target_node */
 int _starpu_task_data_get_node_on_node(struct starpu_task *task, unsigned index, unsigned target_node);
 int _starpu_task_data_get_node_on_worker(struct starpu_task *task, unsigned index, unsigned worker);
 

+ 67 - 65
src/datawizard/coherency.h

@@ -17,6 +17,8 @@
 #ifndef __COHERENCY__H__
 #define __COHERENCY__H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 
@@ -38,39 +40,39 @@ enum _starpu_cache_state
 	STARPU_INVALID
 };
 
-/* this should contain the information relative to a given data replicate  */
+/** this should contain the information relative to a given data replicate  */
 struct _starpu_data_replicate
 {
 	starpu_data_handle_t handle;
 
-	/* describe the actual data layout, as manipulated by data interfaces in *_interface.c */
+	/** describe the actual data layout, as manipulated by data interfaces in *_interface.c */
 	void *data_interface;
 
-	/* How many requests or tasks are currently working with this replicate */
+	/** How many requests or tasks are currently working with this replicate */
 	int refcnt;
 
 	char memory_node;
 
-	/* describes the state of the local data in term of coherency */
+	/** describes the state of the local data in term of coherency */
 	enum _starpu_cache_state	state: 2;
 
-	/* A buffer that is used for SCRATCH or reduction cannnot be used with
+	/** A buffer that is used for SCRATCH or reduction cannnot be used with
 	 * filters. */
 	unsigned relaxed_coherency:2;
 
-	/* We may need to initialize the replicate with some value before using it. */
+	/** We may need to initialize the replicate with some value before using it. */
 	unsigned initialized:1;
 
-	/* is the data locally allocated ? */
+	/** is the data locally allocated ? */
 	unsigned allocated:1;
-	/* was it automatically allocated ? (else it's the application-provided
+	/** was it automatically allocated ? (else it's the application-provided
 	 * buffer, don't ever try to free it!) */
-	/* perhaps the allocation was perform higher in the hiearchy
+	/** perhaps the allocation was perform higher in the hiearchy
 	 * for now this is just translated into !automatically_allocated
 	 * */
 	unsigned automatically_allocated:1;
 
-	/* To help the scheduling policies to make some decision, we
+	/** To help the scheduling policies to make some decision, we
 	   may keep a track of the tasks that are likely to request
 	   this data on the current node.
 	   It is the responsability of the scheduling _policy_ to set that
@@ -80,7 +82,7 @@ struct _starpu_data_replicate
 	uint32_t requested;
 	struct _starpu_data_request *request[STARPU_MAXNODES];
 
-        /* Pointer to memchunk for LRU strategy */
+        /** Pointer to memchunk for LRU strategy */
 	struct _starpu_mem_chunk * mc;
 };
 
@@ -92,14 +94,14 @@ struct _starpu_jobid_list
 	struct _starpu_jobid_list *next;
 };
 
-/* This structure describes a simply-linked list of task */
+/** This structure describes a simply-linked list of task */
 struct _starpu_task_wrapper_list
 {
 	struct starpu_task *task;
 	struct _starpu_task_wrapper_list *next;
 };
 
-/* This structure describes a doubly-linked list of task */
+/** This structure describes a doubly-linked list of task */
 struct _starpu_task_wrapper_dlist
 {
 	struct starpu_task *task;
@@ -111,100 +113,100 @@ extern int _starpu_has_not_important_data;
 
 typedef void (*_starpu_data_handle_unregister_hook)(starpu_data_handle_t);
 
-/* This is initialized in both _starpu_register_new_data and _starpu_data_partition */
+/** This is initialized in both _starpu_register_new_data and _starpu_data_partition */
 struct _starpu_data_state
 {
 	int magic;
 	struct _starpu_data_requester_prio_list req_list;
-	/* the number of requests currently in the scheduling engine (not in
+	/** the number of requests currently in the scheduling engine (not in
 	 * the req_list anymore), i.e. the number of holders of the
 	 * current_mode rwlock */
 	unsigned refcnt;
-	/* whether we are already unlocking data requests */
+	/** whether we are already unlocking data requests */
 	unsigned unlocking_reqs;
-	/* Current access mode. Is always either STARPU_R, STARPU_W,
+	/** Current access mode. Is always either STARPU_R, STARPU_W,
 	 * STARPU_SCRATCH or STARPU_REDUX, but never a combination such as
 	 * STARPU_RW. */
 	enum starpu_data_access_mode current_mode;
-	/* protect meta data */
+	/** protect meta data */
 	struct _starpu_spinlock header_lock;
 
-	/* Condition to make application wait for all transfers before freeing handle */
-	/* busy_count is the number of handle->refcnt, handle->per_node[*]->refcnt, number of starpu_data_requesters, and number of tasks that have released it but are still registered on the implicit data dependency lists. */
-	/* Core code which releases busy_count has to call
+	/** Condition to make application wait for all transfers before freeing handle */
+	/** busy_count is the number of handle->refcnt, handle->per_node[*]->refcnt, number of starpu_data_requesters, and number of tasks that have released it but are still registered on the implicit data dependency lists. */
+	/** Core code which releases busy_count has to call
 	 * _starpu_data_check_not_busy to let starpu_data_unregister proceed */
 	unsigned busy_count;
-	/* Is starpu_data_unregister waiting for busy_count? */
+	/** Is starpu_data_unregister waiting for busy_count? */
 	unsigned busy_waiting;
 	starpu_pthread_mutex_t busy_mutex;
 	starpu_pthread_cond_t busy_cond;
 
-	/* In case we user filters, the handle may describe a sub-data */
-	struct _starpu_data_state *root_handle; /* root of the tree */
-	struct _starpu_data_state *father_handle; /* father of the node, NULL if the current node is the root */
-	starpu_data_handle_t *active_children; /* The currently active set of read-write children */
-	starpu_data_handle_t **active_readonly_children; /* The currently active set of read-only children */
-	unsigned nactive_readonly_children; /* Size of active_readonly_children array */
-	/* Our siblings in the father partitioning */
-	unsigned nsiblings; /* How many siblings */
+	/** In case we user filters, the handle may describe a sub-data */
+	struct _starpu_data_state *root_handle; /** root of the tree */
+	struct _starpu_data_state *father_handle; /** father of the node, NULL if the current node is the root */
+	starpu_data_handle_t *active_children; /** The currently active set of read-write children */
+	starpu_data_handle_t **active_readonly_children; /** The currently active set of read-only children */
+	unsigned nactive_readonly_children; /** Size of active_readonly_children array */
+	/** Our siblings in the father partitioning */
+	unsigned nsiblings; /** How many siblings */
 	starpu_data_handle_t *siblings;
-	unsigned sibling_index; /* indicate which child this node is from the father's perpsective (if any) */
-	unsigned depth; /* what's the depth of the tree ? */
+	unsigned sibling_index; /** indicate which child this node is from the father's perpsective (if any) */
+	unsigned depth; /** what's the depth of the tree ? */
 
-	/* Synchronous partitioning */
+	/** Synchronous partitioning */
 	starpu_data_handle_t children;
 	unsigned nchildren;
-	/* How many partition plans this handle has */
+	/** How many partition plans this handle has */
 	unsigned nplans;
-	/* Switch codelet for asynchronous partitioning */
+	/** Switch codelet for asynchronous partitioning */
 	struct starpu_codelet *switch_cl;
-	/* size of dyn_nodes recorded in switch_cl */
+	/** size of dyn_nodes recorded in switch_cl */
 	unsigned switch_cl_nparts;
-	/* Whether a partition plan is currently submitted and the
+	/** Whether a partition plan is currently submitted and the
 	 * corresponding unpartition has not been yet
 	 *
 	 * Or the number of partition plans currently submitted in readonly
 	 * mode.
 	 */
 	unsigned partitioned;
-	/* Whether a partition plan is currently submitted in readonly mode */
+	/** Whether a partition plan is currently submitted in readonly mode */
 	unsigned readonly:1;
 
-	/* Whether our father is currently partitioned into ourself */
+	/** Whether our father is currently partitioned into ourself */
 	unsigned active:1;
 	unsigned active_ro:1;
 
-	/* describe the state of the data in term of coherency */
+	/** describe the state of the data in term of coherency */
 	struct _starpu_data_replicate per_node[STARPU_MAXNODES];
 	struct _starpu_data_replicate *per_worker;
 
 	struct starpu_data_interface_ops *ops;
 
-	/* Footprint which identifies data layout */
+	/** Footprint which identifies data layout */
 	uint32_t footprint;
 
-	/* where is the data home, i.e. which node it was registered from ? -1 if none yet */
+	/** where is the data home, i.e. which node it was registered from ? -1 if none yet */
 	int home_node;
 
-	/* what is the default write-through mask for that data ? */
+	/** what is the default write-through mask for that data ? */
 	uint32_t wt_mask;
 
-	/* in some case, the application may explicitly tell StarPU that a
+	/** in some case, the application may explicitly tell StarPU that a
  	 * piece of data is not likely to be used soon again */
 	unsigned is_not_important;
 
-	/* Does StarPU have to enforce some implicit data-dependencies ? */
+	/** Does StarPU have to enforce some implicit data-dependencies ? */
 	unsigned sequential_consistency;
-	/* Is the data initialized, or a task is already submitted to initialize it */
+	/** Is the data initialized, or a task is already submitted to initialize it */
 	unsigned initialized;
-	/* Can the data be pushed to the disk? */
+	/** Can the data be pushed to the disk? */
 	unsigned ooc;
 
-	/* This lock should protect any operation to enforce
+	/** This lock should protect any operation to enforce
 	 * sequential_consistency */
 	starpu_pthread_mutex_t sequential_consistency_mutex;
 
-	/* The last submitted task (or application data request) that declared
+	/** The last submitted task (or application data request) that declared
 	 * it would modify the piece of data ? Any task accessing the data in a
 	 * read-only mode should depend on that task implicitely if the
 	 * sequential_consistency flag is enabled. */
@@ -212,7 +214,7 @@ struct _starpu_data_state
 	struct starpu_task *last_sync_task;
 	struct _starpu_task_wrapper_dlist last_submitted_accessors;
 
-	/* If FxT is enabled, we keep track of "ghost dependencies": that is to
+	/** If FxT is enabled, we keep track of "ghost dependencies": that is to
 	 * say the dependencies that are not needed anymore, but that should
 	 * appear in the post-mortem DAG. For instance if we have the sequence
 	 * f(Aw) g(Aw), and that g is submitted after the termination of f, we
@@ -222,7 +224,7 @@ struct _starpu_data_state
 	unsigned long last_submitted_ghost_sync_id;
 	struct _starpu_jobid_list *last_submitted_ghost_accessors_id;
 
-	/* protected by sequential_consistency_mutex */
+	/** protected by sequential_consistency_mutex */
 	struct _starpu_task_wrapper_list *post_sync_tasks;
 	unsigned post_sync_tasks_cnt;
 
@@ -230,26 +232,26 @@ struct _starpu_data_state
 	 *	Reductions
 	 */
 
-	/* During reduction we need some specific methods: redux_func performs
+	/** During reduction we need some specific methods: redux_func performs
 	 * the reduction of an interface into another one (eg. "+="), and init_func
 	 * initializes the data interface to a default value that is stable by
 	 * reduction (eg. 0 for +=). */
 	struct starpu_codelet *redux_cl;
 	struct starpu_codelet *init_cl;
 
-	/* Are we currently performing a reduction on that handle ? If so the
+	/** Are we currently performing a reduction on that handle ? If so the
 	 * reduction_refcnt should be non null until there are pending tasks
 	 * that are performing the reduction. */
 	unsigned reduction_refcnt;
 
-	/* List of requesters that are specific to the pending reduction. This
+	/** List of requesters that are specific to the pending reduction. This
 	 * list is used when the requests in the req_list list are frozen until
 	 * the end of the reduction. */
 	struct _starpu_data_requester_prio_list reduction_req_list;
 
 	starpu_data_handle_t *reduction_tmp_handles;
 
-	/* Final request for write invalidation */
+	/** Final request for write invalidation */
 	struct _starpu_data_request *write_invalidation_req;
 
 	unsigned lazy_unregister;
@@ -258,33 +260,33 @@ struct _starpu_data_state
 	unsigned removed_from_context_hash;
 #endif
 
-        /* Used for MPI */
+        /** Used for MPI */
 	void *mpi_data;
 
 	_starpu_memory_stats_t memory_stats;
 
 	unsigned int mf_node; //XXX
 
-	/* hook to be called when unregistering the data */
+	/** hook to be called when unregistering the data */
 	_starpu_data_handle_unregister_hook unregister_hook;
 
 	struct starpu_arbiter *arbiter;
-	/* This is protected by the arbiter mutex */
+	/** This is protected by the arbiter mutex */
 	struct _starpu_data_requester_prio_list arbitered_req_list;
 
-	/* Data maintained by schedulers themselves */
-	/* Last worker that took this data in locality mode, or -1 if nobody
+	/** Data maintained by schedulers themselves */
+	/** Last worker that took this data in locality mode, or -1 if nobody
 	 * took it yet */
 	int last_locality;
 
 	int partition_automatic_disabled;
 
-	/* A generic pointer to data in the user land (could be anything and this
+	/** A generic pointer to data in the user land (could be anything and this
 	 * is not manage by StarPU) */
 	void *user_data;
 };
 
-/* This does not take a reference on the handle, the caller has to do it,
+/** This does not take a reference on the handle, the caller has to do it,
  * e.g. through _starpu_attempt_to_submit_data_request_from_apps()
  * detached means that the core is allowed to drop the request. The caller
  * should thus *not* take a reference since it can not know whether the request will complete
@@ -293,7 +295,7 @@ struct _starpu_data_state
 int _starpu_fetch_data_on_node(starpu_data_handle_t handle, int node, struct _starpu_data_replicate *replicate,
 			       enum starpu_data_access_mode mode, unsigned detached, unsigned is_prefetch, unsigned async,
 			       void (*callback_func)(void *), void *callback_arg, int prio, const char *origin);
-/* This releases a reference on the handle */
+/** This releases a reference on the handle */
 void _starpu_release_data_on_node(struct _starpu_data_state *state, uint32_t default_wt_mask,
 				  struct _starpu_data_replicate *replicate);
 
@@ -310,7 +312,7 @@ starpu_ssize_t _starpu_data_get_max_size(starpu_data_handle_t handle);
 uint32_t _starpu_data_get_footprint(starpu_data_handle_t handle);
 
 void __starpu_push_task_output(struct _starpu_job *j);
-/* Version with driver trace */
+/** Version with driver trace */
 void _starpu_push_task_output(struct _starpu_job *j);
 
 void _starpu_release_nowhere_task_output(struct _starpu_job *j);
@@ -328,7 +330,7 @@ int _starpu_determine_request_path(starpu_data_handle_t handle,
 				  unsigned *src_nodes, unsigned *dst_nodes,
 				  unsigned *handling_nodes, unsigned write_invalidation);
 
-/* is_prefetch is whether the DSM may drop the request (when there is not enough memory for instance
+/** is_prefetch is whether the DSM may drop the request (when there is not enough memory for instance
  * async is whether the caller wants a reference on the last request, to be
  * able to wait for it (which will release that reference).
  */

+ 6 - 4
src/datawizard/copy_driver.h

@@ -17,6 +17,8 @@
 #ifndef __COPY_DRIVER_H__
 #define __COPY_DRIVER_H__
 
+/** @file */
+
 #ifdef HAVE_AIO_H
 #include <aio.h>
 #endif
@@ -46,7 +48,7 @@ struct _starpu_data_request;
 struct _starpu_data_replicate;
 
 #ifdef STARPU_USE_MIC
-/* MIC needs memory_node to know which MIC is concerned.
+/** MIC needs memory_node to know which MIC is concerned.
  * mark is used to wait asynchronous request.
  * signal is used to test asynchronous request. */
 struct _starpu_mic_async_event
@@ -84,7 +86,7 @@ struct _starpu_disk_async_event
 	starpu_data_handle_t handle;
 };
 
-/* this is a structure that can be queried to see whether an asynchronous
+/** this is a structure that can be queried to see whether an asynchronous
  * transfer has terminated or not */
 union _starpu_async_channel_event
 {
@@ -114,10 +116,10 @@ struct _starpu_async_channel
 {
 	union _starpu_async_channel_event event;
 	struct _starpu_node_ops *node_ops;
-        /* Which node to polling when needing ACK msg */
+        /** Which node to polling when needing ACK msg */
         struct _starpu_mp_node *polling_node_sender;
         struct _starpu_mp_node *polling_node_receiver;
-        /* Used to know if the acknowlegdment msg is arrived from sinks */
+        /** Used to know if the acknowlegdment msg is arrived from sinks */
         volatile int starpu_mp_common_finished_sender;
         volatile int starpu_mp_common_finished_receiver;
 };

+ 19 - 17
src/datawizard/data_request.h

@@ -14,6 +14,8 @@
  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  */
 
+/** @file */
+
 /* This one includes us, so make sure to include it first */
 #include <datawizard/coherency.h>
 
@@ -44,18 +46,18 @@ struct _starpu_callback_list
 	struct _starpu_callback_list *next;
 };
 
-/* This represents a data request, i.e. we want some data to get transferred
+/** This represents a data request, i.e. we want some data to get transferred
  * from a source to a destination. */
 LIST_TYPE(_starpu_data_request,
 	struct _starpu_spinlock lock;
 	unsigned refcnt;
-	const char *origin; /* Name of the function that triggered the request */
+	const char *origin; /** Name of the function that triggered the request */
 
 	starpu_data_handle_t handle;
 	struct _starpu_data_replicate *src_replicate;
 	struct _starpu_data_replicate *dst_replicate;
 
-	/* Which memory node will actually perform the transfer.
+	/** Which memory node will actually perform the transfer.
 	 * This is important in the CUDA/OpenCL case, where only the worker for
 	 * the node can make the CUDA/OpenCL calls.
 	 */
@@ -71,33 +73,33 @@ LIST_TYPE(_starpu_data_request,
 	 */
 	enum starpu_data_access_mode mode;
 
-	/* Elements needed to make the transfer asynchronous */
+	/** Elements needed to make the transfer asynchronous */
 	struct _starpu_async_channel async_channel;
 
-	/* Whether the transfer is completed. */
+	/** Whether the transfer is completed. */
 	unsigned completed;
 
-	/* Whether this is just a prefetch request:
+	/** Whether this is just a prefetch request:
 	 * 0 for fetch,
 	 * 1 for prefetch (dependencies have just been released)
 	 * 2 for idle (a good idea to do it some time, but no hurry at all)
 	 */
 	unsigned prefetch;
 
-	/* Priority of the request. Default is 0 */
+	/** Priority of the request. Default is 0 */
 	int prio;
 
-	/* The value returned by the transfer function */
+	/** The value returned by the transfer function */
 	int retval;
 
-	/* The request will not actually be submitted until there remains
+	/** The request will not actually be submitted until there remains
 	 * dependencies. */
 	unsigned ndeps;
 
-	/* in case we have a chain of request (eg. for nvidia multi-GPU), this
+	/** in case we have a chain of request (eg. for nvidia multi-GPU), this
 	 * is the list of requests which are waiting for this one. */
 	struct _starpu_data_request *next_req[STARPU_MAXNODES+1];
-	/* The number of requests in next_req */
+	/** The number of requests in next_req */
 	unsigned next_req_count;
 
 	struct _starpu_callback_list *callbacks;
@@ -106,22 +108,22 @@ LIST_TYPE(_starpu_data_request,
 )
 PRIO_LIST_TYPE(_starpu_data_request, prio)
 
-/* Everyone that wants to access some piece of data will post a request.
+/** Everyone that wants to access some piece of data will post a request.
  * Not only StarPU internals, but also the application may put such requests */
 LIST_TYPE(_starpu_data_requester,
-	/* what kind of access is requested ? */
+	/** what kind of access is requested ? */
 	enum starpu_data_access_mode mode;
 
-	/* applications may also directly manipulate data */
+	/** applications may also directly manipulate data */
 	unsigned is_requested_by_codelet;
 
-	/* in case this is a codelet that will do the access */
+	/** in case this is a codelet that will do the access */
 	struct _starpu_job *j;
 	unsigned buffer_index;
 
 	int prio;
 
-	/* if this is more complicated ... (eg. application request) 
+	/** if this is more complicated ... (eg. application request) 
 	 * NB: this callback is not called with the lock taken !
 	 */
 	void (*ready_data_callback)(void *argcb);
@@ -132,7 +134,7 @@ PRIO_LIST_TYPE(_starpu_data_requester, prio)
 void _starpu_init_data_request_lists(void);
 void _starpu_deinit_data_request_lists(void);
 void _starpu_post_data_request(struct _starpu_data_request *r);
-/* returns 0 if we have pushed all requests, -EBUSY or -ENOMEM otherwise */
+/** returns 0 if we have pushed all requests, -EBUSY or -ENOMEM otherwise */
 int _starpu_handle_node_data_requests(unsigned src_node, unsigned may_alloc, unsigned *pushed);
 int _starpu_handle_node_prefetch_requests(unsigned src_node, unsigned may_alloc, unsigned *pushed);
 int _starpu_handle_node_idle_requests(unsigned src_node, unsigned may_alloc, unsigned *pushed);

+ 2 - 0
src/datawizard/datastats.h

@@ -17,6 +17,8 @@
 #ifndef __DATASTATS_H__
 #define __DATASTATS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <stdint.h>

+ 2 - 0
src/datawizard/datawizard.h

@@ -17,6 +17,8 @@
 #ifndef __DATAWIZARD_H__
 #define __DATAWIZARD_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 

+ 3 - 2
src/datawizard/filters.h

@@ -17,6 +17,8 @@
 #ifndef __FILTERS_H__
 #define __FILTERS_H__
 
+/** @file */
+
 #include <stdarg.h>
 #include <datawizard/coherency.h>
 #include <datawizard/memalloc.h>
@@ -24,7 +26,6 @@
 #include <starpu.h>
 #include <common/config.h>
 
-
-/* submit asynchronous unpartitioning / partitioning to make target active read-only or read-write */
+/** submit asynchronous unpartitioning / partitioning to make target active read-only or read-write */
 void _starpu_data_partition_access_submit(starpu_data_handle_t target, int write);
 #endif

+ 5 - 3
src/datawizard/footprint.h

@@ -18,18 +18,20 @@
 #ifndef __FOOTPRINT_H__
 #define __FOOTPRINT_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <core/jobs.h>
 
-/* Compute the footprint that characterizes the job and cache it into the job
+/** Compute the footprint that characterizes the job and cache it into the job
  * structure. */
 uint32_t _starpu_compute_buffers_footprint(struct starpu_perfmodel *model, struct starpu_perfmodel_arch * arch, unsigned nimpl, struct _starpu_job *j);
 
-/* Compute the footprint that characterizes the layout of the data handle. */
+/** Compute the footprint that characterizes the layout of the data handle. */
 uint32_t _starpu_compute_data_footprint(starpu_data_handle_t handle);
 
-/* Compute the footprint that characterizes the allocation of the data handle. */
+/** Compute the footprint that characterizes the allocation of the data handle. */
 uint32_t _starpu_compute_data_alloc_footprint(starpu_data_handle_t handle);
 
 #endif // __FOOTPRINT_H__

+ 4 - 2
src/datawizard/interfaces/data_interface.h

@@ -17,6 +17,8 @@
 #ifndef __DATA_INTERFACE_H__
 #define __DATA_INTERFACE_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <common/uthash.h>
@@ -24,7 +26,7 @@
 #include <util/openmp_runtime_support.h>
 #endif
 
-/* Generic type representing an interface, for now it's only used before
+/** Generic type representing an interface, for now it's only used before
  * execution on message-passing devices but it can be useful in other cases.
  */
 union _starpu_interface
@@ -39,7 +41,7 @@ union _starpu_interface
 	struct starpu_multiformat_interface multiformat;
 };
 
-/* Some data interfaces or filters use this interface internally */
+/** Some data interfaces or filters use this interface internally */
 extern struct starpu_data_interface_ops starpu_interface_matrix_ops;
 extern struct starpu_data_interface_ops starpu_interface_block_ops;
 extern struct starpu_data_interface_ops starpu_interface_vector_ops;

+ 2 - 0
src/datawizard/malloc.h

@@ -17,6 +17,8 @@
 #ifndef __ALLOC_H__
 #define __ALLOC_H__
 
+/** @file */
+
 void _starpu_malloc_init(unsigned dst_node);
 void _starpu_malloc_shutdown(unsigned dst_node);
 

+ 12 - 10
src/datawizard/memalloc.h

@@ -17,6 +17,8 @@
 #ifndef __MEMALLOC_H__
 #define __MEMALLOC_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 
@@ -27,10 +29,10 @@
 
 struct _starpu_data_replicate;
 
-/* While associated with a handle, the content is protected by the handle lock, except a few fields
+/** While associated with a handle, the content is protected by the handle lock, except a few fields
  */
 LIST_TYPE(_starpu_mem_chunk,
-	/* protected by the mc_lock */
+	/** protected by the mc_lock */
 	starpu_data_handle_t data;
 
 	uint32_t footprint;
@@ -47,21 +49,21 @@ LIST_TYPE(_starpu_mem_chunk,
 	void *chunk_interface;
 	size_t size_interface;
 
-	/* Whether StarPU automatically allocated this memory, or the application did */
+	/** Whether StarPU automatically allocated this memory, or the application did */
 	unsigned automatically_allocated:1;
-	/* A buffer that is used for SCRATCH or reduction cannnot be used with
+	/** A buffer that is used for SCRATCH or reduction cannnot be used with
 	 * filters. */
 	unsigned relaxed_coherency:2;
-	/* Whether this is the home chunk, or there is no home chunk (and it is thus always clean) */
+	/** Whether this is the home chunk, or there is no home chunk (and it is thus always clean) */
 	unsigned home:1;
-	/* Whether the memchunk is in the clean part of the mc_list */
+	/** Whether the memchunk is in the clean part of the mc_list */
 	unsigned clean:1;
-	/* Was this chunk used since it got allocated?  */
+	/** Was this chunk used since it got allocated?  */
 	unsigned diduse:1;
-	/* Was this chunk marked as "won't use"? */
+	/** Was this chunk marked as "won't use"? */
 	unsigned wontuse:1;
 
-	/* the size of the data is only set when calling _starpu_request_mem_chunk_removal(),
+	/** the size of the data is only set when calling _starpu_request_mem_chunk_removal(),
 	 * it is needed to estimate how much memory is in mc_cache, and by
 	 * free_memory_on_node() which is called when the handle is no longer
 	 * valid.
@@ -71,7 +73,7 @@ LIST_TYPE(_starpu_mem_chunk,
 
 	struct _starpu_data_replicate *replicate;
 
-	/* This is set when one keeps a pointer to this mc obtained from the
+	/** This is set when one keeps a pointer to this mc obtained from the
 	 * mc_list without mc_lock held. We need to clear the pointer if we
 	 * remove this entry from the mc_list, so we know we have to restart
 	 * from zero. This is protected by the corresponding mc_lock.  */

+ 2 - 0
src/datawizard/memory_manager.h

@@ -17,6 +17,8 @@
 #ifndef __MEMORY_MANAGER_H__
 #define __MEMORY_MANAGER_H__
 
+/** @file */
+
 #include <starpu.h>
 
 #ifdef __cplusplus

+ 5 - 3
src/datawizard/memory_nodes.h

@@ -17,6 +17,8 @@
 #ifndef __MEMORY_NODES_H__
 #define __MEMORY_NODES_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <datawizard/coherency.h>
@@ -76,7 +78,7 @@ static inline void _starpu_memory_node_add_nworkers(unsigned node)
 	_starpu_descr.nworkers[node]++;
 }
 
-/* same utility as _starpu_memory_node_add_nworkers */
+/** same utility as _starpu_memory_node_add_nworkers */
 void _starpu_worker_drives_memory_node(struct _starpu_worker *worker, unsigned memnode);
 
 static inline struct _starpu_node_ops *_starpu_memory_node_get_node_ops(unsigned node)
@@ -125,13 +127,13 @@ static inline unsigned _starpu_worker_get_memory_node(unsigned workerid)
 {
 	struct _starpu_machine_config *config = _starpu_get_machine_config();
 
-	/* This workerid may either be a basic worker or a combined worker */
+	/** This workerid may either be a basic worker or a combined worker */
 	unsigned nworkers = config->topology.nworkers;
 
 	if (workerid < config->topology.nworkers)
 		return config->workers[workerid].memory_node;
 
-	/* We have a combined worker */
+	/** We have a combined worker */
 	unsigned ncombinedworkers STARPU_ATTRIBUTE_UNUSED = config->topology.ncombinedworkers;
 	STARPU_ASSERT_MSG(workerid < ncombinedworkers + nworkers, "Bad workerid %u, maximum %u", workerid, ncombinedworkers + nworkers);
 	return config->combined_workers[workerid - nworkers].memory_node;

+ 2 - 0
src/datawizard/memstats.h

@@ -17,6 +17,8 @@
 #ifndef __MEMSTATS_H__
 #define __MEMSTATS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 

+ 2 - 0
src/datawizard/node_ops.h

@@ -17,6 +17,8 @@
 #ifndef __NODE_OPS_H__
 #define __NODE_OPS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <datawizard/copy_driver.h>

+ 3 - 1
src/datawizard/sort_data_handles.h

@@ -17,6 +17,8 @@
 #ifndef __SORT_DATA_HANDLES_H__
 #define __SORT_DATA_HANDLES_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <common/config.h>
 #include <stdlib.h>
@@ -26,7 +28,7 @@
 #include <datawizard/coherency.h>
 #include <datawizard/memalloc.h>
 
-/* To avoid deadlocks, we reorder the different buffers accessed to by the task
+/** To avoid deadlocks, we reorder the different buffers accessed to by the task
  * so that we always grab the rw-lock associated to the handles in the same
  * order. */
 void _starpu_sort_task_handles(struct _starpu_data_descr descr[], unsigned nbuffers);

+ 3 - 1
src/datawizard/write_back.h

@@ -17,10 +17,12 @@
 #ifndef __DW_WRITE_BACK_H__
 #define __DW_WRITE_BACK_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <datawizard/coherency.h>
 
-/* If a write-through mask is associated to that data handle, this propagates
+/** If a write-through mask is associated to that data handle, this propagates
  * the the current value of the data onto the different memory nodes in the
  * write_through_mask. */
 void _starpu_write_through_data(starpu_data_handle_t handle, unsigned requesting_node,

+ 4 - 2
src/debug/starpu_debug_helpers.h

@@ -17,6 +17,8 @@
 #ifndef __STARPU_DEBUG_HELPERS_H__
 #define __STARPU_DEBUG_HELPERS_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_config.h>
 #include <starpu_util.h>
@@ -26,10 +28,10 @@ extern "C"
 {
 #endif
 
-/* Perform a ping pong between the two memory nodes */
+/** Perform a ping pong between the two memory nodes */
 void _starpu_benchmark_ping_pong(starpu_data_handle_t handle, unsigned node0, unsigned node1, unsigned niter);
 
-/* Display the size of different data structures */
+/** Display the size of different data structures */
 void _starpu_debug_display_structures_size(FILE *stream);
 
 #ifdef __cplusplus

+ 2 - 0
src/debug/traces/starpu_fxt.h

@@ -18,6 +18,8 @@
 #ifndef __STARPU__FXT_H__
 #define __STARPU__FXT_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_config.h>
 #include <common/config.h>

+ 2 - 0
src/drivers/cpu/driver_cpu.h

@@ -17,6 +17,8 @@
 #ifndef __DRIVER_CPU_H__
 #define __DRIVER_CPU_H__
 
+/** @file */
+
 #include <common/config.h>
 #include <datawizard/node_ops.h>
 

+ 2 - 0
src/drivers/cuda/driver_cuda.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVER_CUDA_H__
 #define __DRIVER_CUDA_H__
 
+/** @file */
+
 #include <common/config.h>
 
 #ifdef STARPU_USE_CUDA

+ 2 - 0
src/drivers/disk/driver_disk.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVER_DISK_H__
 #define __DRIVER_DISK_H__
 
+/** @file */
+
 #include <datawizard/node_ops.h>
 
 int _starpu_disk_copy_src_to_disk(void * src, unsigned src_node, void * dst, size_t dst_offset, unsigned dst_node, size_t size, void * async_channel);

+ 2 - 0
src/drivers/driver_common/driver_common.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVER_COMMON_H__
 #define __DRIVER_COMMON_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_util.h>
 #include <core/jobs.h>

+ 2 - 0
src/drivers/mic/driver_mic_common.h

@@ -19,6 +19,8 @@
 #ifndef __DRIVER_MIC_COMMON_H__
 #define __DRIVER_MIC_COMMON_H__
 
+/** @file */
+
 #include <common/config.h>
 
 #ifdef STARPU_USE_MIC

+ 2 - 0
src/drivers/mic/driver_mic_sink.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVER_MIC_SINK_H__
 #define __DRIVER_MIC_SINK_H__
 
+/** @file */
+
 #include <common/config.h>
 
 #ifdef STARPU_USE_MIC

+ 2 - 0
src/drivers/mic/driver_mic_source.h

@@ -18,6 +18,8 @@
 #ifndef __DRIVER_MIC_SOURCE_H__
 #define __DRIVER_MIC_SOURCE_H__
 
+/** @file */
+
 #include <starpu_mic.h>
 #include <common/config.h>
 

+ 18 - 16
src/drivers/mp_common/mp_common.h

@@ -18,6 +18,8 @@
 #ifndef __MP_COMMON_H__
 #define __MP_COMMON_H__
 
+/** @file */
+
 #include <semaphore.h>
 
 #include <starpu.h>
@@ -152,7 +154,7 @@ LIST_TYPE(_starpu_mp_event,
 );
 
 
-/* Message-passing working node, whether source
+/** Message-passing working node, whether source
  * or sink */
 struct _starpu_mp_node
 {
@@ -167,38 +169,38 @@ struct _starpu_mp_node
 	/*Is starpu running*/
 	int is_running;
 
-	/* Buffer used for scif data transfers, allocated
+	/** Buffer used for scif data transfers, allocated
 	 * during node initialization.
 	 * Size : BUFFER_SIZE */
 	void *buffer;
 
-	/* For sink : -1.
+	/** For sink : -1.
 	 * For host : index of the sink = devid.
 	 */
 	int peer_id;
 
-	/* Only MIC use this for now !!
+	/** Only MIC use this for now !!
 	 * This is the devid both for the sink and the host. */
 	int devid;
 
-	/* Only MIC use this for now !!
+	/** Only MIC use this for now !!
 	 *  Is the number ok MIC on the system. */
 	unsigned int nb_mp_sinks;
 
-	/* Connection used for command passing between the host thread and the
+	/** Connection used for command passing between the host thread and the
 	 * sink it controls */
 	union _starpu_mp_connection mp_connection;
 
-        /* Only MIC use this for now !!
+        /** Only MIC use this for now !!
          * Connection used for data transfers between the host and his sink. */
         union _starpu_mp_connection host_sink_dt_connection;
 
-        /* Mutex to protect the interleaving of communications when using one thread per node,
+        /** Mutex to protect the interleaving of communications when using one thread per node,
          * for instance, when a thread transfers piece of data and an other wants to use
          * a sink_to_sink communication */
         starpu_pthread_mutex_t connection_mutex;
 
-        /* Only MIC use this for now !!
+        /** Only MIC use this for now !!
          * Only sink use this for now !!
          * Connection used for data transfer between devices.
          * A sink opens a connection with each other sink,
@@ -208,15 +210,15 @@ struct _starpu_mp_node
          *  - sink_sink_dt_connections[j] is not initialized for the sink number j. */
         union _starpu_mp_connection *sink_sink_dt_connections;
 
-        /* This list contains events
+        /** This list contains events
          * about asynchronous request
          */
         struct _starpu_mp_event_list event_list;
 
-        /* */
+        /** */
         starpu_pthread_barrier_t init_completed_barrier;
 
-        /* table to store pointer of the thread workers*/
+        /** table to store pointer of the thread workers*/
         void* thread_table;
 
         /*list where threads add messages to send to the source node */
@@ -232,24 +234,24 @@ struct _starpu_mp_node
         struct mp_task ** run_table_detached;
         sem_t * sem_run_table;
 
-        /* Node general functions */
+        /** Node general functions */
         void (*init)            (struct _starpu_mp_node *node);
         void (*launch_workers)  (struct _starpu_mp_node *node);
         void (*deinit)          (struct _starpu_mp_node *node);
         void (*report_error)    (const char *, const char *, const int, const int);
 
-        /* Message passing */
+        /** Message passing */
         int (*mp_recv_is_ready) (const struct _starpu_mp_node *);
         void (*mp_send)         (const struct _starpu_mp_node *, void *, int);
         void (*mp_recv)         (const struct _starpu_mp_node *, void *, int);
 
-        /* Data transfers */
+        /** Data transfers */
         void (*dt_send)             (const struct _starpu_mp_node *, void *, int, void *);
         void (*dt_recv)             (const struct _starpu_mp_node *, void *, int, void *);
         void (*dt_send_to_device)   (const struct _starpu_mp_node *, int, void *, int, void *);
         void (*dt_recv_from_device) (const struct _starpu_mp_node *, int, void *, int, void *);
 
-        /* Test async transfers */
+        /** Test async transfers */
         int (*dt_test) (struct _starpu_async_channel *);
 
         void (*(*get_kernel_from_job)   (const struct _starpu_mp_node *,struct _starpu_job *))(void);

+ 6 - 3
src/drivers/mp_common/sink_common.h

@@ -19,15 +19,18 @@
 #ifndef __SINK_COMMON_H__
 #define __SINK_COMMON_H__
 
+/** @file */
+
 #include <common/config.h>
 
 #ifdef STARPU_USE_MP
 
 #include <drivers/mp_common/mp_common.h>
 
-/* Represent the topology of sink devices, contains useful informations about
- * their capabilities */
-// XXX: unused.
+/** Represent the topology of sink devices, contains useful informations about
+ * their capabilities
+ * XXX: unused.
+ */
 struct _starpu_sink_topology
 {
 	unsigned nb_cpus;

+ 2 - 0
src/drivers/mp_common/source_common.h

@@ -18,6 +18,8 @@
 #ifndef __SOURCE_COMMON_H__
 #define __SOURCE_COMMON_H__
 
+/** @file */
+
 #ifdef STARPU_USE_MP
 
 #include <core/sched_policy.h>

+ 2 - 0
src/drivers/mpi/driver_mpi_common.h

@@ -17,6 +17,8 @@
 #ifndef __DRIVER_MPI_COMMON_H__
 #define __DRIVER_MPI_COMMON_H__
 
+/** @file */
+
 #include <drivers/mp_common/mp_common.h>
 #include <drivers/mpi/driver_mpi_source.h>
 

+ 2 - 0
src/drivers/mpi/driver_mpi_sink.h

@@ -17,6 +17,8 @@
 #ifndef __DRIVER_MPI_SINK_H__
 #define __DRIVER_MPI_SINK_H__
 
+/** @file */
+
 #include <drivers/mp_common/sink_common.h>
 
 #ifdef STARPU_USE_MPI_MASTER_SLAVE

+ 3 - 1
src/drivers/mpi/driver_mpi_source.h

@@ -17,6 +17,8 @@
 #ifndef __DRIVER_MPI_SOURCE_H__
 #define __DRIVER_MPI_SOURCE_H__
 
+/** @file */
+
 #include <drivers/mp_common/mp_common.h>
 #include <starpu_mpi_ms.h>
 #include <datawizard/node_ops.h>
@@ -25,7 +27,7 @@
 
 extern struct _starpu_node_ops _starpu_driver_mpi_node_ops;
 
-/* Array of structures containing all the informations useful to send
+/** Array of structures containing all the informations useful to send
  * and receive informations with devices */
 extern struct _starpu_mp_node *_starpu_mpi_ms_nodes[STARPU_MAXMPIDEVS];
 struct _starpu_mp_node *_starpu_mpi_src_get_mp_node_from_memory_node(int memory_node);

+ 2 - 0
src/drivers/opencl/driver_opencl.h

@@ -17,6 +17,8 @@
 #ifndef __DRIVER_OPENCL_H__
 #define __DRIVER_OPENCL_H__
 
+/** @file */
+
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE 1
 #endif

+ 2 - 0
src/drivers/opencl/driver_opencl_utils.h

@@ -17,6 +17,8 @@
 #ifndef __STARPU_OPENCL_UTILS_H__
 #define __STARPU_OPENCL_UTILS_H__
 
+/** @file */
+
 char *_starpu_opencl_get_device_type_as_string(int id);
 
 #define _STARPU_OPENCL_PLATFORM_MAX 4

+ 8 - 6
src/profiling/bound.h

@@ -17,26 +17,28 @@
 #ifndef __BOUND_H__
 #define __BOUND_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_bound.h>
 #include <core/jobs.h>
 
-/* Are we recording? */
+/** Are we recording? */
 extern int _starpu_bound_recording;
 
-/* Record task for bound computation */
+/** Record task for bound computation */
 extern void _starpu_bound_record(struct _starpu_job *j);
 
-/* Record tag dependency: id depends on dep_id */
+/** Record tag dependency: id depends on dep_id */
 extern void _starpu_bound_tag_dep(starpu_tag_t id, starpu_tag_t dep_id);
 
-/* Record task dependency: j depends on dep_j */
+/** Record task dependency: j depends on dep_j */
 extern void _starpu_bound_task_dep(struct _starpu_job *j, struct _starpu_job *dep_j);
 
-/* Record job id dependency: j depends on job_id */
+/** Record job id dependency: j depends on job_id */
 extern void _starpu_bound_job_id_dep(starpu_data_handle_t handle, struct _starpu_job *dep_j, unsigned long job_id);
 
-/* Clear recording */
+/** Clear recording */
 extern void starpu_bound_clear(void);
 
 #endif // __BOUND_H__

+ 14 - 12
src/profiling/profiling.h

@@ -18,47 +18,49 @@
 #ifndef __PROFILING_H__
 #define __PROFILING_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <starpu_profiling.h>
 #include <starpu_util.h>
 #include <common/config.h>
 
-/* Create a task profiling info structure (with the proper time stamps) in case
+/** Create a task profiling info structure (with the proper time stamps) in case
  * profiling is enabled. */
 struct starpu_profiling_task_info *_starpu_allocate_profiling_info_if_needed(struct starpu_task *task);
 
-/* Update the per-worker profiling info after a task (or more) was executed.
+/** Update the per-worker profiling info after a task (or more) was executed.
  * This tells StarPU how much time was spent doing computation. */
 void _starpu_worker_update_profiling_info_executing(int workerid, struct timespec *executing_time, int executed_tasks, uint64_t used_cycles, uint64_t stall_cycles, double consumed_energy, double flops);
 
-/* Record the date when the worker started to sleep. This permits to measure
+/** Record the date when the worker started to sleep. This permits to measure
  * how much time was spent sleeping. */
 void _starpu_worker_restart_sleeping(int workerid);
 
-/* Record the date when the worker stopped sleeping. This permits to measure
+/** Record the date when the worker stopped sleeping. This permits to measure
  * how much time was spent sleeping. */
 void _starpu_worker_stop_sleeping(int workerid);
 
-/* Record the date when the worker started to execute a piece of code. This
+/** Record the date when the worker started to execute a piece of code. This
  * permits to measure how much time was really spent doing computation at the
  * end of the codelet. */
 void _starpu_worker_register_executing_start_date(int workerid, struct timespec *executing_start);
 
-/* Record that the worker is not executing any more. */
+/** Record that the worker is not executing any more. */
 void _starpu_worker_register_executing_end(int workerid);
 
-/* When StarPU is initialized, a matrix describing all the bus between memory
+/** When StarPU is initialized, a matrix describing all the bus between memory
  * nodes is created: it indicates whether there is a physical link between two
  * memory nodes or not. This matrix should contain the identifier of the bus
  * between two nodes or -1 in case there is no link. */
 void _starpu_initialize_busid_matrix(void);
 
-/* Tell StarPU that there exists a link between the two memory nodes. This
+/** Tell StarPU that there exists a link between the two memory nodes. This
  * function returns the identifier associated to the bus which can be used to
  * retrieve profiling information about the bus activity later on. */
 int _starpu_register_bus(int src_node, int dst_node);
 
-/* Tell StarPU that "size" bytes were transferred between the two specified
+/** Tell StarPU that "size" bytes were transferred between the two specified
  * memory nodes. */
 void _starpu_bus_update_profiling_info(int src_node, int dst_node, size_t size);
 
@@ -66,15 +68,15 @@ void _starpu_profiling_set_task_push_start_time(struct starpu_task *task);
 void _starpu_profiling_set_task_push_end_time(struct starpu_task *task);
 
 #ifdef STARPU_PAPI
-/* Functions for papi task profilling */
+/** Functions for papi task profilling */
 void _starpu_profiling_papi_task_start_counters(struct starpu_task *task);
 void _starpu_profiling_papi_task_stop_counters(struct starpu_task *task);
 #endif
 
-/* This function needs to be called before other starpu_profile_* functions */
+/** This function needs to be called before other starpu_profile_* functions */
 void _starpu_profiling_init(void);
 
-/* This function starts profiling if the STARPU_PROFILING environment variable was set */
+/** This function starts profiling if the STARPU_PROFILING environment variable was set */
 void _starpu_profiling_start(void);
 
 void _starpu_profiling_terminate(void);

+ 12 - 10
src/sched_policies/fifo_queues.h

@@ -20,31 +20,33 @@
 #ifndef __FIFO_QUEUES_H__
 #define __FIFO_QUEUES_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <core/task.h>
 
 struct _starpu_fifo_taskq
 {
-	/* the actual list */
+	/** the actual list */
 	struct starpu_task_list taskq;
 
-	/* the number of tasks currently in the queue */
+	/** the number of tasks currently in the queue */
 	unsigned ntasks;
 
-	/* the number of tasks currently in the queue corresponding to each priority */
+	/** the number of tasks currently in the queue corresponding to each priority */
 	unsigned *ntasks_per_priority;
 
-	/* the number of tasks that were processed */
+	/** the number of tasks that were processed */
 	unsigned nprocessed;
 
-	/* only meaningful if the queue is only used by a single worker */
-	double exp_start; /* Expected start date of next item to do in the
+	/** only meaningful if the queue is only used by a single worker */
+	double exp_start; /** Expected start date of next item to do in the
 			   * queue (i.e. not started yet). This is thus updated
 			   * when we start it. */
-	double exp_end; /* Expected end date of last task in the queue */
-	double exp_len; /* Expected duration of the set of tasks in the queue */
-	double *exp_len_per_priority; /* Expected duration of the set of tasks in the queue corresponding to each priority */
-	double pipeline_len; /* the expected duration of what is already pushed to the worker */
+	double exp_end; /** Expected end date of last task in the queue */
+	double exp_len; /** Expected duration of the set of tasks in the queue */
+	double *exp_len_per_priority; /** Expected duration of the set of tasks in the queue corresponding to each priority */
+	double pipeline_len; /** the expected duration of what is already pushed to the worker */
 };
 
 struct _starpu_fifo_taskq*_starpu_create_fifo(void) STARPU_ATTRIBUTE_MALLOC;

+ 2 - 0
src/sched_policies/helper_mct.h

@@ -14,6 +14,8 @@
  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  */
 
+/** @file */
+
 struct _starpu_mct_data
 {
 	double alpha;

+ 6 - 5
src/sched_policies/prio_deque.h

@@ -20,6 +20,7 @@
 #include <starpu_scheduler.h>
 #include <core/task.h>
 
+/** @file */
 
 struct _starpu_prio_deque
 {
@@ -45,7 +46,7 @@ static inline void _starpu_prio_deque_destroy(struct _starpu_prio_deque *pdeque)
 	starpu_task_prio_list_deinit(&pdeque->list);
 }
 
-/* return 0 iff the struct _starpu_prio_deque is not empty */
+/** return 0 iff the struct _starpu_prio_deque is not empty */
 static inline int _starpu_prio_deque_is_empty(struct _starpu_prio_deque *pdeque)
 {
 	return pdeque->ntasks == 0;
@@ -56,7 +57,7 @@ static inline void _starpu_prio_deque_erase(struct _starpu_prio_deque *pdeque, s
 	starpu_task_prio_list_erase(&pdeque->list, task);
 }
 
-/* push a task in O(lg(nb priorities)) */
+/** push a task in O(lg(nb priorities)) */
 static inline int _starpu_prio_deque_push_front_task(struct _starpu_prio_deque *pdeque, struct starpu_task *task)
 {
 	starpu_task_prio_list_push_front(&pdeque->list, task);
@@ -81,7 +82,7 @@ static inline struct starpu_task * _starpu_prio_deque_highest_task(struct _starp
 	return task;
 }
 
-/* all _starpu_prio_deque_pop/deque_task function return a task or a NULL pointer if none are available
+/** all _starpu_prio_deque_pop/deque_task function return a task or a NULL pointer if none are available
  * in O(lg(nb priorities))
  */
 
@@ -123,11 +124,11 @@ static inline int _starpu_prio_deque_pop_this_task(struct _starpu_prio_deque *pd
 	return 0;
 }
 
-/* return a task that can be executed by workerid
+/** return a task that can be executed by workerid
  */
 struct starpu_task * _starpu_prio_deque_pop_task_for_worker(struct _starpu_prio_deque *, int workerid, int *skipped);
 
-/* return a task that can be executed by workerid
+/** return a task that can be executed by workerid
  */
 struct starpu_task * _starpu_prio_deque_deque_task_for_worker(struct _starpu_prio_deque *, int workerid, int *skipped);
 

+ 2 - 0
src/sched_policies/sched_component.h

@@ -18,6 +18,8 @@
 #ifndef __SCHED_COMPONENT_H__
 #define __SCHED_COMPONENT_H__
 
+/** @file */
+
 #include <starpu_sched_component.h>
 
 

+ 2 - 0
src/starpu_parameters.h

@@ -18,6 +18,8 @@
 #ifndef _STARPU_PARAMETERS_H
 #define _STARPU_PARAMETERS_H
 
+/** @file */
+
 /* Parameters which are not worth being added to ./configure options, but
  * still interesting to easily change */
 

+ 25 - 23
src/util/openmp_runtime_support.h

@@ -17,6 +17,8 @@
 #ifndef __OPENMP_RUNTIME_SUPPORT_H__
 #define __OPENMP_RUNTIME_SUPPORT_H__
 
+/** @file */
+
 #include <starpu.h>
 
 #ifdef STARPU_OPENMP
@@ -24,7 +26,7 @@
 #include <common/starpu_spinlock.h>
 #include <common/uthash.h>
 
-/* ucontexts have been deprecated as of POSIX 1-2004
+/** ucontexts have been deprecated as of POSIX 1-2004
  * _XOPEN_SOURCE required at least on OS/X
  *
  * TODO: add detection in configure.ac
@@ -37,12 +39,12 @@
 extern starpu_pthread_key_t omp_thread_key;
 extern starpu_pthread_key_t omp_task_key;
 
-/*
+/**
  * Arbitrary limit on the number of nested parallel sections
  */
 #define STARPU_OMP_MAX_ACTIVE_LEVELS 1
 
-/*
+/**
  * Possible abstract names for OpenMP places
  */
 enum starpu_omp_place_name
@@ -51,7 +53,7 @@ enum starpu_omp_place_name
 	starpu_omp_place_threads   = 1,
 	starpu_omp_place_cores     = 2,
 	starpu_omp_place_sockets   = 3,
-	starpu_omp_place_numerical = 4 /* place specified numerically */
+	starpu_omp_place_numerical = 4 /** place specified numerically */
 };
 
 struct starpu_omp_numeric_place
@@ -63,7 +65,7 @@ struct starpu_omp_numeric_place
 	int nb_excluded_numeric_items;
 };
 
-/*
+/**
  * OpenMP place for thread afinity, defined by the OpenMP spec
  */
 struct starpu_omp_place
@@ -75,54 +77,54 @@ struct starpu_omp_place
 	int nb_numeric_places;
 };
 
-/*
+/**
  * Internal Control Variables (ICVs) declared following
  * OpenMP 4.0.0 spec section 2.3.1
  */
 struct starpu_omp_data_environment_icvs
 {
-	/* parallel region icvs */
+	/** parallel region icvs */
 	int dyn_var;
 	int nest_var;
-	int *nthreads_var; /* nthreads_var ICV is a list */
+	int *nthreads_var; /** nthreads_var ICV is a list */
 	int thread_limit_var;
 
 	int active_levels_var;
 	int levels_var;
-	int *bind_var; /* bind_var ICV is a list */
+	int *bind_var; /** bind_var ICV is a list */
 
-	/* loop region icvs */
+	/** loop region icvs */
 	int run_sched_var;
 	unsigned long long run_sched_chunk_var;
 
-	/* program execution icvs */
+	/** program execution icvs */
 	int default_device_var;
 	int max_task_priority_var;
 };
 
 struct starpu_omp_device_icvs
 {
-	/* parallel region icvs */
+	/** parallel region icvs */
 	int max_active_levels_var;
 
-	/* loop region icvs */
+	/** loop region icvs */
 	int def_sched_var;
 	unsigned long long def_sched_chunk_var;
 
-	/* program execution icvs */
+	/** program execution icvs */
 	int stacksize_var;
 	int wait_policy_var;
 };
 
 struct starpu_omp_implicit_task_icvs
 {
-	/* parallel region icvs */
+	/** parallel region icvs */
 	int place_partition_var;
 };
 
 struct starpu_omp_global_icvs
 {
-	/* program execution icvs */
+	/** program execution icvs */
 	int cancel_var;
 };
 
@@ -147,7 +149,7 @@ struct starpu_omp_initial_icv_values
 	int default_device_var;
 	int max_task_priority_var;
 
-	/* not a real ICV, but needed to store the contents of OMP_PLACES */
+	/** not a real ICV, but needed to store the contents of OMP_PLACES */
 	struct starpu_omp_place places;
 };
 
@@ -185,7 +187,7 @@ enum starpu_omp_task_state
 	starpu_omp_task_state_terminated = 2,
 	starpu_omp_task_state_zombie     = 3,
 
-	/* target tasks are non-preemptible tasks, without dedicated stack and OpenMP Runtime Support context */
+	/** target tasks are non-preemptible tasks, without dedicated stack and OpenMP Runtime Support context */
 	starpu_omp_task_state_target     = 4,
 };
 
@@ -237,7 +239,7 @@ LIST_TYPE(starpu_omp_task,
 	void **starpu_buffers;
 	void *starpu_cl_arg;
 
-	/* actual task function to be run */
+	/** actual task function to be run */
 	void (*cpu_f)(void **starpu_buffers, void *starpu_cl_arg);
 #ifdef STARPU_USE_CUDA
 	void (*cuda_f)(void **starpu_buffers, void *starpu_cl_arg);
@@ -348,11 +350,11 @@ struct starpu_omp_region
 	struct starpu_omp_region *parent_region;
 	struct starpu_omp_device *owner_device;
 	struct starpu_omp_thread *master_thread;
-	/* note: the list of threads does not include the master_thread */
+	/** note: the list of threads does not include the master_thread */
 	struct starpu_omp_thread_list thread_list;
-	/* list of implicit omp tasks created to run the region */
+	/** list of implicit omp tasks created to run the region */
 	struct starpu_omp_task **implicit_task_array;
-	/* include both the master thread and the region own threads */
+	/** include both the master thread and the region own threads */
 	int nb_threads;
 	struct _starpu_spinlock lock;
 	struct starpu_omp_task *waiting_task;
@@ -372,7 +374,7 @@ struct starpu_omp_device
 {
 	struct starpu_omp_device_icvs icvs;
 
-	/* atomic fallback implementation lock */
+	/** atomic fallback implementation lock */
 	struct _starpu_spinlock atomic_lock;
 };
 

+ 2 - 0
src/util/starpu_clusters_create.h

@@ -17,6 +17,8 @@
 #ifndef __STARPU_CLUSTERS_CREATE_H__
 #define __STARPU_CLUSTERS_CREATE_H__
 
+/** @file */
+
 #include <starpu.h>
 #include <core/workers.h>
 #include <common/list.h>

+ 2 - 0
src/util/starpu_data_cpy.h

@@ -17,6 +17,8 @@
 #ifndef __STARPU_DATA_CPY_H__
 #define __STARPU_DATA_CPY_H__
 
+/** @file */
+
 #include <starpu.h>
 
 int _starpu_data_cpy(starpu_data_handle_t dst_handle, starpu_data_handle_t src_handle,

+ 2 - 0
src/util/starpu_task_insert_utils.h

@@ -17,6 +17,8 @@
 #ifndef __STARPU_TASK_INSERT_UTILS_H__
 #define __STARPU_TASK_INSERT_UTILS_H__
 
+/** @file */
+
 #include <stdlib.h>
 #include <stdarg.h>
 #include <starpu.h>