X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fcommands.h;h=b10b545369e28643345fbc8bd7dfef4d44959258;hp=fb70654e4ff5aabd5e5b787a245c2b7276cf8167;hb=97de520bc02f96f31063175fbc9cad034e84055d;hpb=c18947b947064e7eceed8047c42d4c8dfd8ae964 diff --git a/src/jtag/commands.h b/src/jtag/commands.h index fb70654e4f..b10b545369 100644 --- a/src/jtag/commands.h +++ b/src/jtag/commands.h @@ -26,8 +26,6 @@ #ifndef JTAG_COMMANDS_H #define JTAG_COMMANDS_H -#include "jtag.h" - /** * The inferred type of a scan_command_s structure, indicating whether * the command has the host scan in from the device, the host scan out @@ -46,86 +44,77 @@ enum scan_type { * The scan_command provide a means of encapsulating a set of scan_field_s * structures that should be scanned in/out to the device. */ -typedef struct scan_command_s -{ +struct scan_command { /// instruction/not data scan bool ir_scan; /// number of fields in *fields array int num_fields; /// pointer to an array of data scan fields - scan_field_t* fields; + struct scan_field* fields; /// state in which JTAG commands should finish tap_state_t end_state; -} scan_command_t; +}; -typedef struct statemove_command_s -{ +struct statemove_command { /// state in which JTAG commands should finish tap_state_t end_state; -} statemove_command_t; +}; -typedef struct pathmove_command_s -{ +struct pathmove_command { /// number of states in *path int num_states; /// states that have to be passed tap_state_t* path; -} pathmove_command_t; +}; -typedef struct runtest_command_s -{ +struct runtest_command { /// number of cycles to spend in Run-Test/Idle state int num_cycles; /// state in which JTAG commands should finish tap_state_t end_state; -} runtest_command_t; +}; -typedef struct stableclocks_command_s -{ +struct stableclocks_command { /// number of clock cycles that should be sent int num_cycles; -} stableclocks_command_t; +}; -typedef struct reset_command_s -{ - /// Set TRST output: 0=deassert, 1=assert, -1=no change +struct reset_command { + /// Set TRST output: 0 = deassert, 1 = assert, -1 = no change int trst; - /// Set SRST output: 0=deassert, 1=assert, -1=no change + /// Set SRST output: 0 = deassert, 1 = assert, -1 = no change int srst; -} reset_command_t; +}; -typedef struct end_state_command_s -{ +struct end_state_command { /// state in which JTAG commands should finish tap_state_t end_state; -} end_state_command_t; +}; -typedef struct sleep_command_s -{ +struct sleep_command { /// number of microseconds to sleep - u32 us; -} sleep_command_t; + uint32_t us; +}; /** * Defines a container type that hold a pointer to a JTAG command * structure of any defined type. */ -typedef union jtag_command_container_u -{ - scan_command_t* scan; - statemove_command_t* statemove; - pathmove_command_t* pathmove; - runtest_command_t* runtest; - stableclocks_command_t* stableclocks; - reset_command_t* reset; - end_state_command_t* end_state; - sleep_command_t* sleep; -} jtag_command_container_t; +union jtag_command_container { + struct scan_command* scan; + struct statemove_command* statemove; + struct pathmove_command* pathmove; + struct runtest_command* runtest; + struct stableclocks_command* stableclocks; + struct reset_command* reset; + struct end_state_command* end_state; + struct sleep_command* sleep; +}; /** - * The type of the @c jtag_command_container_u contained by a + * The type of the @c jtag_command_container contained by a * @c jtag_command_s structure. */ enum jtag_command_type { @@ -138,25 +127,24 @@ enum jtag_command_type { JTAG_STABLECLOCKS = 8 }; -typedef struct jtag_command_s -{ - jtag_command_container_t cmd; +struct jtag_command { + union jtag_command_container cmd; enum jtag_command_type type; - struct jtag_command_s* next; -} jtag_command_t; + struct jtag_command *next; +}; /// The current queue of jtag_command_s structures. -extern jtag_command_t* jtag_command_queue; +extern struct jtag_command* jtag_command_queue; void* cmd_queue_alloc(size_t size); void cmd_queue_free(void); -void jtag_queue_command(jtag_command_t *cmd); +void jtag_queue_command(struct jtag_command *cmd); void jtag_command_queue_reset(void); -enum scan_type jtag_scan_type(const scan_command_t* cmd); -int jtag_scan_size(const scan_command_t* cmd); -int jtag_read_buffer(uint8_t* buffer, const scan_command_t* cmd); -int jtag_build_buffer(const scan_command_t* cmd, uint8_t** buffer); +enum scan_type jtag_scan_type(const struct scan_command* cmd); +int jtag_scan_size(const struct scan_command* cmd); +int jtag_read_buffer(uint8_t* buffer, const struct scan_command* cmd); +int jtag_build_buffer(const struct scan_command* cmd, uint8_t** buffer); #endif // JTAG_COMMANDS_H