# HG changeset patch # User anatofuz # Date 1596096173 -32400 # Node ID dccc1cb1350c7b5c49f7a17af34d3472e390c09c # Parent 174e02ed350910439ba3ca2496afe4c48ce3bd05 impl kernel goto diff -r 174e02ed3509 -r dccc1cb1350c src/gearsTools/generate_stub.pl --- a/src/gearsTools/generate_stub.pl Tue Jul 28 14:55:05 2020 +0900 +++ b/src/gearsTools/generate_stub.pl Thu Jul 30 17:02:53 2020 +0900 @@ -642,6 +642,12 @@ my $next = $2; my @args = split(/,/, $3); my $v = 0; + my $arg_context = $context_name; + if ($prev =~ /kernel/) { + $prev = ""; + $arg_context = "kernel_context"; + } + if (exists $filename2localCodes{$filename}->{$next}) { print $fd $_; next; } @@ -657,26 +663,26 @@ print $fd "\t*O_$arg = $v;\n"; } if ($hasParGoto) { - print $fd "${prev}Gearef(${context_name}, TaskManager)->taskList = ${context_name}->taskList;\n"; - print $fd "${prev}Gearef(${context_name}, TaskManager)->next1 = C_$next;\n"; - print $fd "${prev}goto meta(${context_name}, C_$next);\n"; + print $fd "${prev}Gearef(${arg_context}, TaskManager)->taskList = ${arg_context}->taskList;\n"; + print $fd "${prev}Gearef(${arg_context}, TaskManager)->next1 = C_$next;\n"; + print $fd "${prev}goto meta(${arg_context}, C_$next);\n"; } else { - print $fd "${prev}${context_name}->before = C_$codeGearName;\n"; - print $fd "${prev}goto meta(${context_name}, $next);\n"; + print $fd "${prev}${arg_context}->before = C_$codeGearName;\n"; + print $fd "${prev}goto meta(${arg_context}, $next);\n"; } next; } if ($hasParGoto) { - print $fd "${prev}Gearef(${context_name}, TaskManager)->taskList = ${context_name}\->taskList;\n"; - print $fd "${prev}Gearef(${context_name}, TaskManager)->next1 = C_$next;\n"; - print $fd "${prev}goto parGotoMeta(${context_name}, C_$next);\n"; + print $fd "${prev}Gearef(${arg_context}, TaskManager)->taskList = ${arg_context}\->taskList;\n"; + print $fd "${prev}Gearef(${arg_context}, TaskManager)->next1 = C_$next;\n"; + print $fd "${prev}goto parGotoMeta(${arg_context}, C_$next);\n"; next; } elsif ($next eq "meta") { print $fd $_; next; } else { - print $fd "${prev}${context_name}\->before = C_$codeGearName;\n"; - print $fd "${prev}goto meta(${context_name}, C_$next);\n"; + print $fd "${prev}${arg_context}\->before = C_$codeGearName;\n"; + print $fd "${prev}goto meta(${arg_context}, C_$next);\n"; next; } } elsif(/^.*(struct|union)?\s(\w+)\*\s(\w+)\s?[=;]/) {