mirror of
https://github.com/avrdudes/avrdude.git
synced 2026-09-29 04:18:54 +03:00
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:
11
src/pgm.c
11
src/pgm.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user