X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fnor%2Fdriver.h;h=ef69a0f424f2d3e7c2ab979cd9bb60254e6ead13;hp=466417adb7c57766a3307e63c4ee1cb210906231;hb=9542cb7c3d9f4b66d2df3d8412a73d008077ab86;hpb=9f0cba528a163645c8ecace413731c23310f2c26;ds=sidebyside diff --git a/src/flash/nor/driver.h b/src/flash/nor/driver.h index 466417adb7..ef69a0f424 100644 --- a/src/flash/nor/driver.h +++ b/src/flash/nor/driver.h @@ -16,13 +16,11 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * along with this program. If not, see . * ***************************************************************************/ -#ifndef FLASH_NOR_DRIVER_H -#define FLASH_NOR_DRIVER_H +#ifndef OPENOCD_FLASH_NOR_DRIVER_H +#define OPENOCD_FLASH_NOR_DRIVER_H struct flash_bank; @@ -111,6 +109,8 @@ struct flash_driver { /** * Bank/sector protection routine (target-specific). * + * If protection is not implemented, set method to NULL + * * When called, the driver should enable/disable protection * for MINIMUM the range covered by first..last sectors * inclusive. Some chips have alignment requirements will @@ -137,7 +137,7 @@ struct flash_driver { * @returns ERROR_OK if successful; otherwise, an error code. */ int (*write)(struct flash_bank *bank, - uint8_t *buffer, uint32_t offset, uint32_t count); + const uint8_t *buffer, uint32_t offset, uint32_t count); /** * Read data from the flash. Note CPU address will be @@ -180,6 +180,8 @@ struct flash_driver { * flash_sector_s::is_protected field for each of the flash * bank's sectors. * + * If protection is not implemented, set method to NULL + * * @param bank - the bank to check * @returns ERROR_OK if successful; otherwise, an error code. */ @@ -200,7 +202,7 @@ struct flash_driver { /** * A more gentle flavor of filash_driver_s::probe, performing * setup with less noise. Generally, driver routines should test - * to seee if the bank has already been probed; if it has, the + * to see if the bank has already been probed; if it has, the * driver probably should not perform its probe a second time. * * This callback is often called from the inside of other @@ -211,6 +213,14 @@ struct flash_driver { * @returns ERROR_OK if successful; otherwise, an error code. */ int (*auto_probe)(struct flash_bank *bank); + + /** + * Deallocates private driver structures. + * Use default_flash_free_driver_priv() to simply free(bank->driver_priv) + * + * @param bank - the bank being destroyed + */ + void (*free_driver_priv)(struct flash_bank *bank); }; #define FLASH_BANK_COMMAND_HANDLER(name) \ @@ -223,4 +233,4 @@ struct flash_driver { */ struct flash_driver *flash_driver_find_by_name(const char *name); -#endif /* FLASH_NOR_DRIVER_H */ +#endif /* OPENOCD_FLASH_NOR_DRIVER_H */