typedef int(* libmem_driver_erase_fn_t)(libmem_driver_handle_t *h, uint8_t *start, size_t size, uint8_t **erase_start, size_t *erase_size)
  | A function pointer to a LIBMEM driver's erase function. Parameters:
  | h | A pointer to the handle of the LIBMEM driver.
  | start | A pointer to the initial memory address in memory range handled by driver to erase.
  | size | The number of bytes to erase.
  | erase_start | A pointer to a location in memory to store a pointer to the start of the memory range that has actually been erased or NULL if not required.
  | erase_size | A pointer to a location in memory to store the size in bytes of the memory range that has actually been erased or NULL if not required.
Returns: The LIBMEM status result. The driver's erase function should erase size bytes of the memory range handled by the LIBMEM driver pointed to by start. There is no specific module or chip erase driver entry point, it is up to the driver to decide how best to erase the memory based on the supplied address range. If the application needs to know what memory was actually erased it can use the erase_start and erase_size parameters. If this operation is not required the function should return LIBMEM_STATUS_SUCCESS and if the erase_start or erase_size parameters are supplied they should be assigned with the values of start and size.