void avr_terminate (avr_t * avr) { if (avr->special_deinit) avr->special_deinit (avr, avr->special_data); if (avr->gdb) { avr_deinit_gdb (avr); avr->gdb = NULL; } if (avr->vcd) { avr_vcd_close (avr->vcd); avr->vcd = NULL; } avr_deallocate_ios (avr); if (avr->flash) free (avr->flash); if (avr->data) free (avr->data); avr->flash = avr->data = NULL; }
void avr_terminate(avr_t * avr) { if (avr->custom.deinit) avr->custom.deinit(avr, avr->custom.data); if (avr->gdb) { avr_deinit_gdb(avr); avr->gdb = NULL; } if (avr->vcd) { avr_vcd_close(avr->vcd); avr->vcd = NULL; } avr_deallocate_ios(avr); if (avr->flash) free(avr->flash); if (avr->data) free(avr->data); if (avr->io_console_buffer.buf) { avr->io_console_buffer.len = 0; avr->io_console_buffer.size = 0; free(avr->io_console_buffer.buf); avr->io_console_buffer.buf = NULL; } avr->flash = avr->data = NULL; }