X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fimage.h;h=2e4ef968b1a5e2ecefd38e45c2c2a3c929b5ebd5;hb=dbd95cb8a27ebe04ab7b788adbb83291bffb3e4f;hp=074b906903627cfb55dcc6075ece9371b1265544;hpb=53d1f9b2ca5718e4996e9cf3406f857d0ed26df2;p=openocd.git diff --git a/src/target/image.h b/src/target/image.h index 074b906903..2e4ef968b1 100644 --- a/src/target/image.h +++ b/src/target/image.h @@ -20,23 +20,29 @@ #ifndef IMAGE_H #define IMAGE_H +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_ELF_H #include +#endif +#include "replacements.h" #include "fileio.h" #include "target.h" #define IMAGE_MAX_ERROR_STRING (256) #define IMAGE_MAX_SECTIONS (128) +#define IMAGE_MEMORY_CACHE_SIZE (1024) + typedef enum image_type { IMAGE_BINARY, /* plain binary */ IMAGE_IHEX, /* intel hex-record format */ IMAGE_MEMORY, /* target-memory pseudo-image */ IMAGE_ELF, /* ELF binary */ -/* - * Possible future enhancements: - * IMAGE_SRECORD, - */ + IMAGE_SRECORD /* motorola s19 */ } image_type_t; typedef struct image_section_s @@ -74,6 +80,8 @@ typedef struct image_ihex_s typedef struct image_memory_s { target_t *target; + u8 *cache; + u32 cache_address; } image_memory_t; typedef struct fileio_elf_s @@ -85,11 +93,19 @@ typedef struct fileio_elf_s u8 endianness; } image_elf_t; -extern int image_open(image_t *image, void *source, char *type_string); +typedef struct image_mot_s +{ + fileio_t fileio; + u8 *buffer; +} image_mot_t; + +extern int image_open(image_t *image, char *url, char *type_string); extern int image_read_section(image_t *image, int section, u32 offset, u32 size, u8 *buffer, u32 *size_read); extern int image_close(image_t *image); #define ERROR_IMAGE_FORMAT_ERROR (-1400) #define ERROR_IMAGE_TYPE_UNKNOWN (-1401) +#define ERROR_IMAGE_TEMPORARILY_UNAVAILABLE (-1402) +#define ERROR_IMAGE_CHECKSUM (-1403) #endif /* IMAGE_H */