diff options
author | Daniel Friesel <derf@finalrewind.org> | 2017-04-13 09:11:31 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2017-04-13 09:11:31 +0200 |
commit | 1479899726b1e2292f0012a1378e4bfb90b68e87 (patch) | |
tree | 7da8171e70dfa8bb663973a594ef4fb6f8fbc423 | |
parent | fe29637bd850b2b0563fccb6978d74dcd6635261 (diff) |
support heap code to declare global variables used by the benchmark
-rw-r--r-- | lib/Kratos/DFADriver.pm | 5 | ||||
-rw-r--r-- | lib/Kratos/DFADriver/Model.pm | 9 |
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) = @_; |