Add a finish method to all endpoints and call it
This commit is contained in:
parent
26abd23137
commit
b8d1ea3f6f
|
@ -1 +1 @@
|
|||
Subproject commit 545d2184975e5e43e364614d1a09959774ce3673
|
||||
Subproject commit 3b5dd741362408886f3390e89cd809829571bcb2
|
|
@ -47,6 +47,7 @@ class blockdev_t: public endpoint_t
|
|||
virtual void tick();
|
||||
virtual bool terminate() { return false; }
|
||||
virtual int exit_code() { return 0; }
|
||||
virtual void finish() {};
|
||||
|
||||
private:
|
||||
BLOCKDEVWIDGET_struct * mmio_addrs;
|
||||
|
|
|
@ -30,6 +30,7 @@ class serial_t: public endpoint_t
|
|||
virtual void tick();
|
||||
virtual bool terminate(){ return fesvr->done(); }
|
||||
virtual int exit_code(){ return fesvr->exit_code(); }
|
||||
virtual void finish() {};
|
||||
|
||||
private:
|
||||
SERIALWIDGET_struct * mmio_addrs;
|
||||
|
|
|
@ -21,6 +21,7 @@ class simplenic_t: public endpoint_t
|
|||
virtual void tick();
|
||||
virtual bool terminate() { return false; };
|
||||
virtual int exit_code() { return 0; }
|
||||
virtual void finish() {};
|
||||
|
||||
private:
|
||||
simif_t* sim;
|
||||
|
|
|
@ -16,8 +16,7 @@ class tracerv_t: public endpoint_t
|
|||
virtual void tick();
|
||||
virtual bool terminate() { return false; }
|
||||
virtual int exit_code() { return 0; }
|
||||
void flush();
|
||||
void finish() { flush(); };
|
||||
virtual void finish() { flush(); };
|
||||
|
||||
private:
|
||||
TRACERVWIDGET_struct * mmio_addrs;
|
||||
|
@ -28,6 +27,7 @@ class tracerv_t: public endpoint_t
|
|||
// Used in unit testing to check TracerV is correctly pulling instuctions off the target
|
||||
bool test_output = false;
|
||||
long dma_addr;
|
||||
void flush();
|
||||
int beats_available_stable();
|
||||
std::string tracefilename;
|
||||
};
|
||||
|
|
|
@ -14,6 +14,7 @@ class uart_t: public endpoint_t
|
|||
void recv();
|
||||
virtual void init() {};
|
||||
virtual void tick();
|
||||
virtual void finish() {};
|
||||
virtual bool terminate() { return false; }
|
||||
virtual int exit_code() { return 0; }
|
||||
|
||||
|
|
|
@ -444,14 +444,12 @@ void firesim_top_t::run() {
|
|||
fprintf(stderr, "FPGA-Cycles-to-Model-Cycles Ratio (FMR): %.2f\n", fmr);
|
||||
expect(!exitcode, NULL);
|
||||
|
||||
for (auto e: fpga_models) {
|
||||
for (auto &e: fpga_models) {
|
||||
e->finish();
|
||||
}
|
||||
|
||||
for (auto &e: endpoints) {
|
||||
e->finish();
|
||||
}
|
||||
#ifdef PRINTWIDGET_0_PRESENT
|
||||
print_endpoint->finish();
|
||||
#endif
|
||||
#ifdef TRACERVWIDGET_0_PRESENT
|
||||
tracerv_endpoint_0->finish();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue