docs: add missing embKernel rtos arg to docs
[fw/openocd] / src / target / target.h
index a610cd034380d9e8bd9e4a07d99d4e0f18ceb5d1..38bb8753cfcd4cf26bd6dd0f23f273f672087324 100644 (file)
@@ -27,7 +27,7 @@
  *   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.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
  ***************************************************************************/
 
 #ifndef TARGET_H
@@ -95,6 +95,7 @@ struct working_area {
        uint32_t size;
        bool free;
        uint8_t *backup;
+       struct working_area **user;
        struct working_area *next;
 };
 
@@ -107,6 +108,12 @@ struct gdb_service {
        int32_t core[2];
 };
 
+/* target back off timer */
+struct backoff_timer {
+       int times;
+       int count;
+};
+
 /* target_type.h contains the full definition of struct target_type */
 struct target {
        struct target_type *type;                       /* target type definition (name, access functions) */
@@ -170,7 +177,7 @@ struct target {
        struct rtos *rtos;                                      /* Instance of Real Time Operating System support */
        bool rtos_auto_detect;                          /* A flag that indicates that the RTOS has been specified as "auto"
                                                                                 * and must be detected when symbols are offered */
-
+       struct backoff_timer backoff;
        int smp;                                                        /* add some target attributes for smp support */
        struct target_list *head;
        /* the gdb service is there in case of smp, we have only one gdb server
@@ -454,6 +461,8 @@ int target_run_flash_async_algorithm(struct target *target,
  */
 int target_read_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
+int target_read_phys_memory(struct target *target,
+               uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
 /**
  * Write @a count items of @a size bytes to the memory of @a target at
  * the @a address given. @a address must be aligned to @a size
@@ -473,16 +482,8 @@ int target_read_memory(struct target *target,
  */
 int target_write_memory(struct target *target,
                uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
-
-/**
- * Write @a count items of 4 bytes to the memory of @a target at
- * the @a address given.  Because it operates only on whole words,
- * this should be faster than target_write_memory().
- *
- * This routine is wrapper for target->type->bulk_write_memory.
- */
-int target_bulk_write_memory(struct target *target,
-               uint32_t address, uint32_t count, const uint8_t *buffer);
+int target_write_phys_memory(struct target *target,
+               uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
 
 /*
  * Write to target memory using the virtual address.