diff --git a/flash.h b/flash.h index a5d3a55c3..03b26e78a 100644 --- a/flash.h +++ b/flash.h @@ -54,6 +54,7 @@ typedef uint32_t chipsize_t; /* Able to store the number of bytes of any support #define PRIuCHIPSIZE PRIu32 int register_shutdown(int (*function) (void *data), void *data); +int shutdown_free(void *data); void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t len); void programmer_unmap_flash_region(void *virt_addr, size_t len); void programmer_delay(unsigned int usecs); diff --git a/flashrom.c b/flashrom.c index 01c1d0367..9b82d4c65 100644 --- a/flashrom.c +++ b/flashrom.c @@ -373,6 +373,12 @@ static bool all_skipped = true; static int check_block_eraser(const struct flashctx *flash, int k, int log); +int shutdown_free(void *data) +{ + free(data); + return 0; +} + /* Register a function to be executed on programmer shutdown. * The advantage over atexit() is that you can supply a void pointer which will * be used as parameter to the registered function upon programmer shutdown. diff --git a/internal.c b/internal.c index 54b2aa383..e646ca888 100644 --- a/internal.c +++ b/internal.c @@ -158,11 +158,6 @@ static const struct par_master par_master_internal = { enum chipbustype internal_buses_supported = BUS_NONE; -static int internal_shutdown(void *data) -{ - return 0; -} - int internal_init(void) { #if __FLASHROM_LITTLE_ENDIAN__ @@ -237,8 +232,6 @@ int internal_init(void) if (rget_io_perms()) return 1; - if (register_shutdown(internal_shutdown, NULL)) - return 1; /* Default to Parallel/LPC/FWH flash devices. If a known host controller * is found, the host controller init routine sets the