Always populate setup and teardown methods of struct programmer_t

Many programmer implementations require "cookies" to store internal
data. It helps to be able to always call setup and teardown methods.
This commit is contained in:
Joerg Wunsch
2024-03-20 13:46:26 +01:00
parent 0e7a76f837
commit a02994dd12

View File

@@ -36,7 +36,7 @@ static void pgm_default_4(const PROGRAMMER *);
static int pgm_default_5(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem,
unsigned long addr, unsigned char data);
static void pgm_default_6(const PROGRAMMER *, const char *);
static void pgm_default_setup_teardown(PROGRAMMER *pgm);
static int pgm_default_open(PROGRAMMER *pgm, const char *name) {
pmsg_error("programmer does not support open()");
@@ -128,6 +128,8 @@ PROGRAMMER *pgm_new(void) {
pgm->page_erase_cached = avr_page_erase_cached;
pgm->flush_cache = avr_flush_cache;
pgm->reset_cache = avr_reset_cache;
pgm->setup = pgm_default_setup_teardown;
pgm->teardown = pgm_default_setup_teardown;
/*
* optional functions - these are checked to make sure they are
@@ -159,8 +161,6 @@ PROGRAMMER *pgm_new(void) {
pgm->parseexitspecs = NULL;
pgm->perform_osccal = NULL;
pgm->parseextparams = NULL;
pgm->setup = NULL;
pgm->teardown = NULL;
pgm->readonly = NULL;
pgm->flash_readhook = NULL;
@@ -268,6 +268,11 @@ static void pgm_default_6 (const PROGRAMMER *pgm, const char *p) {
pgm_default();
}
static void pgm_default_setup_teardown(PROGRAMMER *pgm) {
// ignore
(void)pgm;
}
void programmer_display(PROGRAMMER *pgm, const char * p) {
msg_info("%sProgrammer Type : %s\n", p, pgm->type);