#ifndef JTAG_H
#define JTAG_H
-#include "binarybuffer.h"
-#include "log.h"
+#include <helper/binarybuffer.h>
+#include <helper/log.h>
#ifdef _DEBUG_JTAG_IO_
#define DEBUG_JTAG_IO(expr ...) \
#define DEBUG_JTAG_IOZ 64
#endif
-/*-----<Macros>--------------------------------------------------*/
-
-/**
- * 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)
-
/*-----</Macros>-------------------------------------------------*/
/**
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;
};
/**
* 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);
* 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