X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Ftarget.h;h=009ec17b0d74a89f85f952d0e11ab250a81467e9;hb=68889ea02f28bfd61f0b4b85aad4b0bf8826a947;hp=51fb299cf66ef444dbaadf350e910f0810b533c2;hpb=1186f7efa72a86a7000dce60b090bd4f822cdceb;p=openocd.git diff --git a/src/target/target.h b/src/target/target.h index 51fb299cf6..009ec17b0d 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -26,7 +26,6 @@ #ifndef TARGET_H #define TARGET_H -#include #include "types.h" #include "jim.h" @@ -39,18 +38,6 @@ struct mem_param; struct reg_param; -/** - * Cast a member of a structure out to the containing structure. - * @param ptr The pointer to the member. - * @param type The type of the container struct this is embedded in. - * @param member The name of the member within the struct. - * - * This is a mechanism which is used throughout the Linux kernel. - */ -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) - /* * TARGET_UNKNOWN = 0: we don't know anything about the target yet * TARGET_RUNNING = 1: the target is executing user code @@ -172,6 +159,12 @@ struct target long long halt_issued_time; /* Note time when halt was issued */ }; +/** Returns the instance-specific name of the specified target. */ +static inline const char *target_name(struct target *target) +{ + return target->cmd_name; +} + enum target_event { /* LD historical names @@ -179,8 +172,6 @@ enum target_event * - June/July/Aug 2008 * - Duane Ellis */ TARGET_EVENT_OLD_gdb_program_config, - TARGET_EVENT_OLD_pre_reset, - TARGET_EVENT_OLD_post_reset, TARGET_EVENT_OLD_pre_resume, /* allow GDB to do stuff before others handle the halted event, @@ -203,6 +194,7 @@ enum target_event TARGET_EVENT_RESET_START, TARGET_EVENT_RESET_ASSERT_PRE, + TARGET_EVENT_RESET_ASSERT, /* C code uses this instead of SRST */ TARGET_EVENT_RESET_ASSERT_POST, TARGET_EVENT_RESET_DEASSERT_PRE, TARGET_EVENT_RESET_DEASSERT_POST, @@ -233,7 +225,9 @@ struct target_event_action { struct Jim_Obj *body; int has_percent; struct target_event_action *next; - }; +}; + +bool target_has_event_action(struct target *target, enum target_event event); struct target_event_callback { @@ -293,11 +287,12 @@ struct target* get_current_target(struct command_context *cmd_ctx); struct target *get_target(const char *id); /** - * Get the target name. + * 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_get_name(struct target *target); +const char *target_type_name(struct target *target); /** * Examine the specified @a target, letting it perform any