X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fdriver.c;h=45c5d10afa8b4730cf78f83d8513620139b64f26;hb=ff5deeeeaa4f394931e3c5ccfb4cfd33beda0743;hp=fece0f1ef9d803b7b109fd071d2adecd6c23fe2e;hpb=165fb9309d16ff91967f26ce8c01bfd176371506;p=openocd.git diff --git a/src/jtag/drivers/driver.c b/src/jtag/drivers/driver.c index fece0f1ef9..45c5d10afa 100644 --- a/src/jtag/drivers/driver.c +++ b/src/jtag/drivers/driver.c @@ -2,7 +2,7 @@ * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * - * Copyright (C) 2007,2008 Øyvind Harboe * + * Copyright (C) 2007-2009 Øyvind Harboe * * oyvind.harboe@zylin.com * * * * Copyright (C) 2009 SoftPLC Corporation * @@ -31,8 +31,10 @@ #include "config.h" #endif +#include #include -#include "minidriver.h" +#include +#include #include struct jtag_callback_entry @@ -213,7 +215,10 @@ int interface_jtag_add_dr_scan(int in_num_fields, const struct scan_field *in_fi if (!tap->bypass) { - struct scan_field * start_field = field; /* keep initial position for assert() */ +#ifndef NDEBUG + /* remember initial position for assert() */ + struct scan_field *start_field = field; +#endif /* NDEBUG */ for (int j = 0; j < in_num_fields; j++) { @@ -525,3 +530,30 @@ void interface_jtag_add_callback(jtag_callback1_t callback, jtag_callback_data_t jtag_add_callback4(jtag_convert_to_callback4, data0, (jtag_callback_data_t)callback, 0, 0); } + +/* A minidriver can use use an inline versions of this API level fn */ +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) +{ + assert(end_state != TAP_RESET); + assert(end_state != TAP_INVALID); + + cmd_queue_cur_state = end_state; + + interface_jtag_add_dr_out(tap, + num_fields, num_bits, value, + end_state); +} + +void jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0) +{ + interface_jtag_add_callback(f, data0); +} + +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) +{ + interface_jtag_add_callback4(f, data0, data1, data2, data3); +}