]> git.sur5r.net Git - openocd/blobdiff - src/target/target_type.h
cortex_a hybrid & context breakpoints
[openocd] / src / target / target_type.h
index 15598b2f17f53f6014d55ab5442947f7dfaa413f..fc062dabd6cadd6db587ed3a9c57f8594fd6f99d 100644 (file)
@@ -112,25 +112,25 @@ struct target_type
         * directly, use target_read_memory() instead.
         */
        int (*read_memory)(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
-       int (*write_memory_imp)(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
+       int (*write_memory_imp)(struct target *target, uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
        /**
         * Target memory write callback.  Do @b not call this function
         * directly, use target_write_memory() instead.
         */
-       int (*write_memory)(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
+       int (*write_memory)(struct target *target, uint32_t address, uint32_t size, uint32_t count, const uint8_t *buffer);
 
        /* Default implementation will do some fancy alignment to improve performance, target can override */
        int (*read_buffer)(struct target *target, uint32_t address, uint32_t size, uint8_t *buffer);
 
        /* Default implementation will do some fancy alignment to improve performance, target can override */
-       int (*write_buffer)(struct target *target, uint32_t address, uint32_t size, uint8_t *buffer);
+       int (*write_buffer)(struct target *target, uint32_t address, uint32_t size, const uint8_t *buffer);
 
        /**
         * Write target memory in multiples of 4 bytes, optimized for
         * writing large quantities of data.  Do @b not call this
         * function directly, use target_bulk_write_memory() instead.
         */
-       int (*bulk_write_memory)(struct target *target, uint32_t address, uint32_t count, uint8_t *buffer);
+       int (*bulk_write_memory)(struct target *target, uint32_t address, uint32_t count, const uint8_t *buffer);
 
        int (*checksum_memory)(struct target *target, uint32_t address, uint32_t count, uint32_t* checksum);
        int (*blank_check_memory)(struct target *target, uint32_t address, uint32_t count, uint32_t* blank);
@@ -148,6 +148,8 @@ struct target_type
         * Upon GDB connection all breakpoints/watchpoints are cleared.
         */
        int (*add_breakpoint)(struct target *target, struct breakpoint *breakpoint);
+       int (*add_context_breakpoint)(struct target *target, struct breakpoint *breakpoint);
+       int (*add_hybrid_breakpoint)(struct target *target, struct breakpoint *breakpoint);
 
        /* remove breakpoint. hw will only be updated if the target
         * is currently halted.
@@ -225,7 +227,7 @@ struct target_type
        /*
         * same as read_phys_memory, except that it writes...
         */
-       int (*write_phys_memory)(struct target *target, uint32_t phys_address, uint32_t size, uint32_t count, uint8_t *buffer);
+       int (*write_phys_memory)(struct target *target, uint32_t phys_address, uint32_t size, uint32_t count, const uint8_t *buffer);
 
        int (*mmu)(struct target *target, int *enabled);