97,99c97,100
< for (auto m: sc_gem5::allModules)
< for (auto p: m->ports)
< p->_gem5Finalize();
---
> try {
> for (auto m: sc_gem5::allModules)
> for (auto p: m->ports)
> p->_gem5Finalize();
101,108c102,115
< status(::sc_core::SC_END_OF_ELABORATION);
< for (auto m: sc_gem5::allModules) {
< callbackModule(m);
< m->sc_mod()->end_of_elaboration();
< for (auto p: m->ports)
< p->end_of_elaboration();
< for (auto e: m->exports)
< e->end_of_elaboration();
---
> status(::sc_core::SC_END_OF_ELABORATION);
> for (auto m: sc_gem5::allModules) {
> callbackModule(m);
> m->sc_mod()->end_of_elaboration();
> for (auto p: m->ports)
> p->end_of_elaboration();
> for (auto e: m->exports)
> e->end_of_elaboration();
> }
> callbackModule(nullptr);
> for (auto c: sc_gem5::allChannels)
> c->sc_chan()->end_of_elaboration();
> } catch (...) {
> ::sc_gem5::scheduler.throwToScMain();
110,112c117,118
< callbackModule(nullptr);
< for (auto c: sc_gem5::allChannels)
< c->sc_chan()->end_of_elaboration();
---
>
> ::sc_gem5::scheduler.elaborationDone(true);
126,132c132,145
< status(::sc_core::SC_START_OF_SIMULATION);
< for (auto m: sc_gem5::allModules) {
< m->sc_mod()->start_of_simulation();
< for (auto p: m->ports)
< p->start_of_simulation();
< for (auto e: m->exports)
< e->start_of_simulation();
---
> try {
> status(::sc_core::SC_START_OF_SIMULATION);
> for (auto m: sc_gem5::allModules) {
> m->sc_mod()->start_of_simulation();
> for (auto p: m->ports)
> p->start_of_simulation();
> for (auto e: m->exports)
> e->start_of_simulation();
> }
> callbackModule(nullptr);
> for (auto c: sc_gem5::allChannels)
> c->sc_chan()->start_of_simulation();
> } catch (...) {
> ::sc_gem5::scheduler.throwToScMain();
134,135d146
< for (auto c: sc_gem5::allChannels)
< c->sc_chan()->start_of_simulation();
158,163c169,181
< for (auto m: sc_gem5::allModules) {
< m->sc_mod()->end_of_simulation();
< for (auto p: m->ports)
< p->end_of_simulation();
< for (auto e: m->exports)
< e->end_of_simulation();
---
> try {
> for (auto m: sc_gem5::allModules) {
> m->sc_mod()->end_of_simulation();
> for (auto p: m->ports)
> p->end_of_simulation();
> for (auto e: m->exports)
> e->end_of_simulation();
> }
> callbackModule(nullptr);
> for (auto c: sc_gem5::allChannels)
> c->sc_chan()->end_of_simulation();
> } catch (...) {
> ::sc_gem5::scheduler.throwToScMain();
165,166d182
< for (auto c: sc_gem5::allChannels)
< c->sc_chan()->end_of_simulation();