X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7fe9b0b742d7dae9c5af1d292d11840b5c3cbfae..2f2d9fc5ac94856e4eb62403968748de8f4d9a04:/client/flash.h diff --git a/client/flash.h b/client/flash.h index ab4fca96..d5f47b9d 100644 --- a/client/flash.h +++ b/client/flash.h @@ -1,21 +1,35 @@ +//----------------------------------------------------------------------------- +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Flashing utility functions +//----------------------------------------------------------------------------- + #ifndef __FLASH_H__ #define __FLASH_H__ -struct partition { - int start; - int end; - int precious; - const char *name; -}; +#include +#include "elf.h" + +typedef struct { + void *data; + uint32_t start; + uint32_t length; +} flash_seg_t; -void FlushPrevious(int translate); -void GotByte(uint32_t where, uint8_t which, int start_addr, int end_addr, int translate); -unsigned int EnterFlashState(void); -int PrepareFlash(struct partition *p, const char *filename, unsigned int state); -int find_next_area(const char *str, int *offset, int *length); +typedef struct { + const char *filename; + int can_write_bl; + int num_segs; + flash_seg_t *segments; +} flash_file_t; -#define PHYSICAL_FLASH_START 0x100000 -void do_flash(char **argv); +int flash_load(flash_file_t *ctx, const char *name, int can_write_bl); +int flash_start_flashing(int enable_bl_writes); +int flash_write(flash_file_t *ctx); +void flash_free(flash_file_t *ctx); +int flash_stop_flashing(void); #endif