Skip to content
Snippets Groups Projects
Commit 40ccbb00 authored by Leandre Lacourt's avatar Leandre Lacourt
Browse files

ajout de la generation des i/o

parent 1984801f
No related branches found
No related tags found
No related merge requests found
Pipeline #186485 passed
......@@ -8,13 +8,8 @@ open Parser
let yaml_file = ref ""
(* let print_var_inputs var name =
* fprintf cfile "void %s_TASK_setin_%s(%s_TASK_type tD, %s %s) {\n" name var.name name var.var_type var.name;
* fprintf cfile "%s_TASK_struct* ts = (%s_TASK_struct*) tD;\n" name;
* fprintf cfile "ts->ctx.%s = %s;\n" var.name var.name;
* fprintf cfile "}\n\n";
* in
* let print_var_outputs var name =
(* let print_var_outputs name var =
* fprintf cfile "void %s_TASK_getout_%s(%s_TASK_type tD, %s* p%s) {\n" name var.name name var.var_type var.name;
* fprintf cfile "%s_TASK_struct* ts = (%s_TASK_struct*) tD;\n" name;
* fprintf cfile "*p%s = ts->ctx.%s;\n" var.name var.name;
......@@ -73,7 +68,7 @@ let main () =
fprintf cfile "/* runners */\n";
let print_task_runners task =
fprintf cfile "void* %s_runner(void* cd) {\n" task.name;
fprintf cfile "\t%s_TASK_struct* ts = (%s_TASK_struct*) cd\n" task.name task.name;
fprintf cfile "\t%s_TASK_struct* ts = (%s_TASK_struct*) cd;\n" task.name task.name;
fprintf cfile "\twhile(1){\n";
fprintf cfile "\t\tSEM_WAIT(ts->sem_start);\n";
fprintf cfile "\t\t%s_step(&ts->ctx);\n" task.name;
......@@ -123,13 +118,31 @@ let main () =
in
List.iter print_task_joins !tasks;
(* fprintf cfile "/* task inputs */\n";
* let print_task_inputs task =
* List.iter print_var_inputs task.var_in task.name;
* task.
* in
* List.iter print_task_inputs !tasks;
fprintf cfile "/* task inputs */\n";
let print_task_inputs task =
let (print_var_inputs : string -> variable -> unit) =
fun name var ->
fprintf cfile "void %s_TASK_setin_%s(%s_TASK_type tD, %s %s) {\n" name var.name name var.var_type var.name;
fprintf cfile "\t%s_TASK_struct* ts = (%s_TASK_struct*) tD;\n" name name;
fprintf cfile "\tts->ctx.%s = %s;\n" var.name var.name;
fprintf cfile "}\n\n";
in
List.iter (print_var_inputs task.name) task.var_in;
in
List.iter print_task_inputs !tasks;
fprintf cfile "/* task inputs */\n";
let print_task_outputs task =
let (print_var_outputs : string -> variable -> unit) =
fun name var ->
fprintf cfile "void %s_TASK_getout_%s(%s_TASK_type tD, %s* p%s) {\n" name var.name name var.var_type var.name;
fprintf cfile "\t%s_TASK_struct* ts = (%s_TASK_struct*) tD;\n" name name;
fprintf cfile "\t*p%s = ts->ctx.%s;\n" var.name var.name;
fprintf cfile "}\n\n";
in
List.iter (print_var_outputs task.name) task.var_out;
in
List.iter print_task_outputs !tasks;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment