X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Ftarget_type.h;h=aa87a74495a2d2fa5eb3a872a3f4c43461bf676a;hp=f601b191a261429d2fc03b7dcb2d1612a3e5c909;hb=9ac7cdec82c19481b79f2effcefb7106dd7ade41;hpb=f30136603e4cc8b2db0112a32f26959d5201e58c diff --git a/src/target/target_type.h b/src/target/target_type.h index f601b191a2..aa87a74495 100644 --- a/src/target/target_type.h +++ b/src/target/target_type.h @@ -30,22 +30,19 @@ struct target; +/** + * This holds methods shared between all instances of a given target + * type. For example, all Cortex-M3 targets on a scan chain share + * the same method table. + */ struct target_type { /** - * Name of the target. Do @b not access this field directly, use - * target_get_name() instead. + * Name of this type of target. Do @b not access this + * field directly, use target_get_name() instead. */ char *name; - /** - * Indicates whether this target has been examined. - * - * Do @b not access this field directly, use target_was_examined() - * target_set_examined(), and target_reset_examined(). - */ - int examined; - /* poll current target status */ int (*poll)(struct target *target); /* Invoked only from target_arch_state(). @@ -165,13 +162,22 @@ struct target_type /* returns JIM_OK, or JIM_ERR, or JIM_CONTINUE - if option not understood */ int (*target_jim_commands)(struct target *target, Jim_GetOptInfo *goi); - /* invoked after JTAG chain has been examined & validated. During - * this stage the target is examined and any additional setup is - * performed. + /** + * This method is used to perform target setup that requires + * JTAG access. + * + * This may be called multiple times. It is called after the + * scan chain is initially validated, or later after the target + * is enabled by a JRC. It may also be called during some + * parts of the reset sequence. * - * invoked every time after the jtag chain has been validated/examined + * For one-time initialization tasks, use target_was_examined() + * and target_set_examined(). For example, probe the hardware + * before setting up chip-specific state, and then set that + * flag so you don't do that again. */ int (*examine)(struct target *target); + /* Set up structures for target. * * It is illegal to talk to the target at this stage as this fn is invoked