X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fjtag.h;h=fece65210c3ec0b03ddd62a6e4c3e821b99a3bff;hp=e3f81489682ec7de27639f1444732d2a4531b036;hb=97de520bc02f96f31063175fbc9cad034e84055d;hpb=5874d5f2ea2ef9bd7d759d47ed868269ba99ab65 diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index e3f8148968..fece65210c 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -23,8 +23,8 @@ #ifndef JTAG_H #define JTAG_H -#include "binarybuffer.h" -#include "log.h" +#include +#include #ifdef _DEBUG_JTAG_IO_ #define DEBUG_JTAG_IO(expr ...) \ @@ -38,17 +38,6 @@ #define DEBUG_JTAG_IOZ 64 #endif -/*-------------------------------------------------------*/ - -/** - * When given an array, compute its DIMension; in other words, the - * number of elements in the array - */ -#define DIM(x) (sizeof(x)/sizeof((x)[0])) - -/** Calculate the number of bytes required to hold @a n TAP scan bits */ -#define TAP_SCAN_BYTES(n) CEIL(n, 8) - /*------------------------------------------------------*/ /** @@ -220,9 +209,14 @@ enum jtag_event { struct jtag_tap_event_action { - enum jtag_event event; - Jim_Obj* body; - struct jtag_tap_event_action* next; + /// The event for which this action will be triggered. + enum jtag_event event; + /// The interpreter to use for evaluating the @c body. + Jim_Interp *interp; + /// Contains a script to 'eval' when the @c event is triggered. + Jim_Obj *body; + // next action in linked list + struct jtag_tap_event_action *next; }; /** @@ -315,7 +309,7 @@ bool jtag_will_verify_capture_ir(void); * Initialize interface upon startup. Return a successful no-op upon * subsequent invocations. */ -int jtag_interface_init(struct command_context_s* cmd_ctx); +int jtag_interface_init(struct command_context* cmd_ctx); /// Shutdown the JTAG interface upon program exit. int jtag_interface_quit(void); @@ -324,12 +318,12 @@ int jtag_interface_quit(void); * Initialize JTAG chain using only a RESET reset. If init fails, * try reset + init. */ -int jtag_init(struct command_context_s* cmd_ctx); +int jtag_init(struct command_context* cmd_ctx); /// reset, then initialize JTAG chain -int jtag_init_reset(struct command_context_s* cmd_ctx); -int jtag_register_commands(struct command_context_s* cmd_ctx); -int jtag_init_inner(struct command_context_s *cmd_ctx); +int jtag_init_reset(struct command_context* cmd_ctx); +int jtag_register_commands(struct command_context* cmd_ctx); +int jtag_init_inner(struct command_context *cmd_ctx); /** * @file @@ -467,10 +461,6 @@ typedef int (*jtag_callback_t)(jtag_callback_data_t data0, * @param data3 An integer big enough to use as an @c int or a pointer. * */ -void jtag_add_callback4(jtag_callback_t f, jtag_callback_data_t data0, - jtag_callback_data_t data1, jtag_callback_data_t data2, - jtag_callback_data_t data3); - /** * Run a TAP_RESET reset where the end state is TAP_RESET, @@ -694,9 +684,6 @@ void jtag_sleep(uint32_t us); * There is no jtag_add_dr_outin() version of this fn that also allows * clocking data back in. Patches gladly accepted! */ -void jtag_add_dr_out(struct jtag_tap* tap, - int num_fields, const int* num_bits, const uint32_t* value, - tap_state_t end_state); /** @@ -731,4 +718,9 @@ bool jtag_poll_get_enabled(void); */ void jtag_poll_set_enabled(bool value); + +/* The minidriver may have inline versions of some of the low + * level APIs that are used in inner loops. */ +#include + #endif /* JTAG_H */