X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Ftarget_type.h;h=70eb96253754a457879b13806ce99e1aade98c9b;hb=d44f1aaeff45d26348826bdff07caf3d097eca15;hp=333b58b41f49201d6b2204728c05e405f4be5b2c;hpb=b715a81f5b95144118d8f946d4191f1dc844783a;p=openocd.git diff --git a/src/target/target_type.h b/src/target/target_type.h index 333b58b41f..70eb962537 100644 --- a/src/target/target_type.h +++ b/src/target/target_type.h @@ -26,7 +26,7 @@ #ifndef TARGET_TYPE_H #define TARGET_TYPE_H -#include "types.h" +#include struct target; @@ -124,18 +124,24 @@ struct target_type * Target must be halted while this is invoked as this * will actually set up breakpoints on target. * - * The breakpoint hardware will be set up upon adding the first breakpoint. + * The breakpoint hardware will be set up upon adding the + * first breakpoint. * * Upon GDB connection all breakpoints/watchpoints are cleared. */ int (*add_breakpoint)(struct target *target, struct breakpoint *breakpoint); - /* remove breakpoint. hw will only be updated if the target is currently halted. + /* remove breakpoint. hw will only be updated if the target + * is currently halted. * However, this method can be invoked on unresponsive targets. */ int (*remove_breakpoint)(struct target *target, struct breakpoint *breakpoint); + + /* add watchpoint ... see add_breakpoint() comment above. */ int (*add_watchpoint)(struct target *target, struct watchpoint *watchpoint); - /* remove watchpoint. hw will only be updated if the target is currently halted. + + /* remove watchpoint. hw will only be updated if the target + * is currently halted. * However, this method can be invoked on unresponsive targets. */ int (*remove_watchpoint)(struct target *target, struct watchpoint *watchpoint); @@ -207,11 +213,13 @@ struct target_type int (*mmu)(struct target *target, int *enabled); - /* Read coprocessor - arm specific. Default implementation returns error. */ - int (*mrc)(struct target *target, int cpnum, uint32_t op1, uint32_t op2, uint32_t CRn, uint32_t CRm, uint32_t *value); - - /* Write coprocessor. Default implementation returns error. */ - int (*mcr)(struct target *target, int cpnum, uint32_t op1, uint32_t op2, uint32_t CRn, uint32_t CRm, uint32_t value); + /* after reset is complete, the target can check if things are properly set up. + * + * This can be used to check if e.g. DCC memory writes have been enabled for + * arm7/9 targets, which they really should except in the most contrived + * circumstances. + */ + int (*check_reset)(struct target *target); }; #endif // TARGET_TYPE_H