ソースを参照

add prolog callbacks to mpi

Andra Hugo 12 年 前
コミット
84e77b5ad7
共有1 個のファイルを変更した48 個の追加0 個の削除を含む
  1. 48 0
      mpi/src/starpu_mpi_task_insert.c

+ 48 - 0
mpi/src/starpu_mpi_task_insert.c

@@ -279,6 +279,22 @@ int _starpu_mpi_task_decode_v(struct starpu_codelet *codelet, int me, int nb_nod
 		{
 		{
 			va_arg(varg_list_copy, void *);
 			va_arg(varg_list_copy, void *);
 		}
 		}
+		else if (arg_type==STARPU_PROLOGUE_CALLBACK)
+                {
+                        (void)va_arg(varg_list, _starpu_callback_func_t);
+		}
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP)
+                {
+			(void)va_arg(varg_list, _starpu_callback_func_t);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+		}
 		else if (arg_type==STARPU_PRIORITY)
 		else if (arg_type==STARPU_PRIORITY)
 		{
 		{
 			va_arg(varg_list_copy, int);
 			va_arg(varg_list_copy, int);
@@ -411,6 +427,22 @@ int _starpu_mpi_task_build_v(MPI_Comm comm, struct starpu_codelet *codelet, stru
 		{
 		{
 			va_arg(varg_list_copy, void *);
 			va_arg(varg_list_copy, void *);
 		}
 		}
+		else if (arg_type==STARPU_PROLOGUE_CALLBACK)
+                {
+                        (void)va_arg(varg_list, _starpu_callback_func_t);
+		}
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP)
+                {
+			(void)va_arg(varg_list, _starpu_callback_func_t);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+		}
 		else if (arg_type==STARPU_PRIORITY)
 		else if (arg_type==STARPU_PRIORITY)
 		{
 		{
 			va_arg(varg_list_copy, int);
 			va_arg(varg_list_copy, int);
@@ -535,6 +567,22 @@ int _starpu_mpi_task_postbuild_v(MPI_Comm comm, struct starpu_codelet *codelet,
 		{
 		{
 			va_arg(varg_list_copy, void *);
 			va_arg(varg_list_copy, void *);
 		}
 		}
+		else if (arg_type==STARPU_PROLOGUE_CALLBACK)
+                {
+                        (void)va_arg(varg_list, _starpu_callback_func_t);
+		}
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP)
+                {
+			(void)va_arg(varg_list, _starpu_callback_func_t);
+                }
+                else if (arg_type==STARPU_PROLOGUE_CALLBACK_POP_ARG)
+                {
+                        (void)va_arg(varg_list, void *);
+		}
 		else if (arg_type==STARPU_PRIORITY)
 		else if (arg_type==STARPU_PRIORITY)
 		{
 		{
 			va_arg(varg_list_copy, int);
 			va_arg(varg_list_copy, int);