image_t -> struct image
[fw/openocd] / src / flash / flash.h
index fd3c4c29512f890b790bdeb8c7abe7f4c1a00c23..eeacc756cfa2d1b0452806bf652959467c8cee83 100644 (file)
@@ -29,7 +29,7 @@
 #include "target.h"
 #include "log.h"
 
-struct image_s;
+struct image;
 
 #define FLASH_MAX_ERROR_STR    (128)
 
@@ -38,7 +38,7 @@ struct image_s;
  * within a flash bank.  A single bank typically consists of multiple
  * sectors, each of which can be erased and protected independently.
  */
-typedef struct flash_sector_s
+struct flash_sector
 {
        /// Bus offset from start of the flash chip (in bytes).
        uint32_t offset;
@@ -55,10 +55,13 @@ typedef struct flash_sector_s
         * @c flash_driver_s::protect_check.
         */
        int is_protected;
-} flash_sector_t;
+};
 
 struct flash_bank_s;
 
+#define __FLASH_BANK_COMMAND(name) \
+               COMMAND_HELPER(name, struct flash_bank_s *bank)
+
 /**
  * @brief Provides the implementation-independent structure that defines
  * all of the callbacks required by OpenOCD flash drivers.
@@ -79,7 +82,7 @@ struct flash_bank_s;
  * corresponding static <code>flash_driver_<i>callback</i>()</code>
  * routine in flash.c.
  */
-typedef struct flash_driver_s
+struct flash_driver
 {
        /**
         * Gives a human-readable name of this flash driver,
@@ -102,12 +105,6 @@ typedef struct flash_driver_s
         * layer when this routine is called, and the driver can store
         * additional information in its flash_bank_t::driver_priv field.
         *
-        * @param cmd_ctx - the command context
-        * @param cmd     - the command, in this case 'flash'
-        * @param args    - parameters, see below
-        * @param argc    - number of parameters on command line
-        * @param bank    - new filled in flash bank.
-        *
         * The args are: @par
         * @code
         * args[0] = bank
@@ -127,8 +124,7 @@ typedef struct flash_driver_s
         *
         * @returns ERROR_OK if successful; otherwise, an error code.
         */
-       int (*flash_bank_command)(struct command_context_s *cmd_ctx,
-                       char *cmd, char **args, int argc, struct flash_bank_s *bank);
+       __FLASH_BANK_COMMAND((*flash_bank_command));
 
        /**
         * Bank/sector erase routine (target-specific).  When
@@ -228,7 +224,9 @@ typedef struct flash_driver_s
         * @returns ERROR_OK if successful; otherwise, an error code.
         */
        int (*auto_probe)(struct flash_bank_s *bank);
-} flash_driver_t;
+};
+
+#define FLASH_BANK_COMMAND_HANDLER(name) static __FLASH_BANK_COMMAND(name)
 
 /**
  * Provides details of a flash bank, available either on-chip or through
@@ -244,7 +242,7 @@ typedef struct flash_bank_s
 {
        struct target_s *target; /**< Target to which this bank belongs. */
 
-       flash_driver_t *driver; /**< Driver for this bank. */
+       struct flash_driver *driver; /**< Driver for this bank. */
        void *driver_priv; /**< Private driver storage pointer */
 
        int bank_number; /**< The 'bank' (or chip number) of this instance. */
@@ -261,7 +259,7 @@ typedef struct flash_bank_s
         */
        int num_sectors;
        /// Array of sectors, allocated and initilized by the flash driver
-       flash_sector_t *sectors;
+       struct flash_sector *sectors;
 
        struct flash_bank_s *next; /**< The next flash bank on this chip */
 } flash_bank_t;
@@ -288,7 +286,7 @@ int flash_erase_address_range(struct target_s *target,
  * @returns ERROR_OK if successful; otherwise, an error code.
  */
 int flash_write(struct target_s *target,
-               struct image_s *image, uint32_t *written, int erase);
+               struct image *image, uint32_t *written, int erase);
 /**
  * Forces targets to re-examine their erase/protection state.
  * This routine must be called when the system may modify the status.
@@ -326,7 +324,7 @@ flash_bank_t *get_flash_bank_by_num(int num);
  * @returns ERROR_OK on success, or an error indicating the problem.
  */
 int flash_command_get_bank_by_num(struct command_context_s *cmd_ctx,
-               char *str, flash_bank_t **bank);
+               const char *str, flash_bank_t **bank);
 /**
  * Returns the flash bank like get_flash_bank_by_num(), without probing.
  * @param num The flash bank number.