+int target_register_timer_callback(int (*callback)(void *priv),
+ int time_ms, int periodic, void *priv);
+
+int target_call_timer_callbacks(void);
+/**
+ * Invoke this to ensure that e.g. polling timer callbacks happen before
+ * a synchronous command completes.
+ */
+int target_call_timer_callbacks_now(void);
+
+struct target *get_current_target(struct command_context *cmd_ctx);
+struct target *get_target(const char *id);
+
+/**
+ * Get the target type name.
+ *
+ * This routine is a wrapper for the target->type->name field.
+ * Note that this is not an instance-specific name for his target.
+ */
+const char *target_type_name(struct target *target);
+
+/**
+ * Examine the specified @a target, letting it perform any
+ * Initialisation that requires JTAG access.
+ *
+ * This routine is a wrapper for target->type->examine.
+ */
+int target_examine_one(struct target *target);
+
+/** @returns @c true if target_set_examined() has been called. */
+static inline bool target_was_examined(struct target *target)
+{
+ return target->examined;
+}
+
+/** Sets the @c examined flag for the given target. */
+/** Use in target->type->examine() after one-time setup is done. */
+static inline void target_set_examined(struct target *target)
+{
+ target->examined = true;
+}
+
+/**
+ * Add the @a breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_breakpoint.
+ */
+int target_add_breakpoint(struct target *target,
+ struct breakpoint *breakpoint);
+/**
+ * Add the @a ContextID breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_context_breakpoint.
+ */
+int target_add_context_breakpoint(struct target *target,
+ struct breakpoint *breakpoint);
+/**
+ * Add the @a ContextID & IVA breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_hybrid_breakpoint.
+ */
+int target_add_hybrid_breakpoint(struct target *target,
+ struct breakpoint *breakpoint);
+/**
+ * Remove the @a breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->remove_breakpoint.
+ */
+
+int target_remove_breakpoint(struct target *target,
+ struct breakpoint *breakpoint);
+/**
+ * Add the @a watchpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_watchpoint.
+ */
+int target_add_watchpoint(struct target *target,
+ struct watchpoint *watchpoint);
+/**
+ * Remove the @a watchpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->remove_watchpoint.