summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2017-04-13 09:11:31 +0200
committerDaniel Friesel <derf@finalrewind.org>2017-04-13 09:11:31 +0200
commit1479899726b1e2292f0012a1378e4bfb90b68e87 (patch)
tree7da8171e70dfa8bb663973a594ef4fb6f8fbc423 /lib
parentfe29637bd850b2b0563fccb6978d74dcd6635261 (diff)
support heap code to declare global variables used by the benchmark
Diffstat (limited to 'lib')
-rw-r--r--lib/Kratos/DFADriver.pm5
-rw-r--r--lib/Kratos/DFADriver/Model.pm9
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/Kratos/DFADriver.pm b/lib/Kratos/DFADriver.pm
index 046a013..b7e1200 100644
--- a/lib/Kratos/DFADriver.pm
+++ b/lib/Kratos/DFADriver.pm
@@ -911,6 +911,11 @@ sub to_test_cc {
DeclareThread(DriverEvalThread, driverEvalThread, 256);
+EOF
+
+ $buf .= $self->model->heap_code;
+
+ $buf .= <<"EOF";
void DriverEvalThread::action()
{
Guarded_Buzzer buzzer;
diff --git a/lib/Kratos/DFADriver/Model.pm b/lib/Kratos/DFADriver/Model.pm
index e6f8142..ef821e7 100644
--- a/lib/Kratos/DFADriver/Model.pm
+++ b/lib/Kratos/DFADriver/Model.pm
@@ -156,6 +156,9 @@ sub parse_xml {
if ( my ($node) = $xml->findnodes('/data/startup/code') ) {
$self->{startup}{code} = $node->textContent;
}
+ if ( my ($node) = $xml->findnodes('/data/heap/code') ) {
+ $self->{heap}{code} = $node->textContent;
+ }
if ( my ($node) = $xml->findnodes('/data/after-transition/code') ) {
$self->{after_transition}{code} = $node->textContent;
}
@@ -453,6 +456,12 @@ sub startup_code {
return $self->{startup}{code} // q{};
}
+sub heap_code {
+ my ($self) = @_;
+
+ return $self->{heap}{code} // q{};
+}
+
sub after_transition_code {
my ($self) = @_;