summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-12-02 17:30:33 -0800
committerZachary T Welch <zw@superlucidity.net>2009-12-02 23:27:09 -0800
commit879a04cc6bc2bdf62b19b974524e1f15f2c9da8e (patch)
treecdbcba072ed61a8666be7e670d72ce8f2ff9a7ac /src
parent865efd828a267992db0f2a92a731c5ce23a34236 (diff)
downloadopenocd+libswd-879a04cc6bc2bdf62b19b974524e1f15f2c9da8e.tar.gz
openocd+libswd-879a04cc6bc2bdf62b19b974524e1f15f2c9da8e.tar.bz2
openocd+libswd-879a04cc6bc2bdf62b19b974524e1f15f2c9da8e.tar.xz
openocd+libswd-879a04cc6bc2bdf62b19b974524e1f15f2c9da8e.zip
remove #if HAVE_JTAG_INTERFACE_H from minidriver.h
Adds two "minidriver_imp.h" files, so the right one is allowed to be "#included" by the Makefile logic.
Diffstat (limited to 'src')
-rw-r--r--src/jtag/Makefile.am7
-rw-r--r--src/jtag/drivers/Makefile.am1
-rw-r--r--src/jtag/drivers/minidriver_imp.h47
-rw-r--r--src/jtag/minidriver.h56
-rw-r--r--src/jtag/minidriver/minidriver_imp.h44
5 files changed, 105 insertions, 50 deletions
diff --git a/src/jtag/Makefile.am b/src/jtag/Makefile.am
index c735897e..421987c4 100644
--- a/src/jtag/Makefile.am
+++ b/src/jtag/Makefile.am
@@ -11,6 +11,9 @@ libjtag_la_LIBADD =
if MINIDRIVER
+# for minidriver_imp.h
+AM_CPPFLAGS += -I$(srcdir)/minidriver
+
if ZY1000
DRIVERFILES += zy1000/zy1000.c
AM_CPPFLAGS += -I$(srcdir)/zy1000
@@ -27,6 +30,9 @@ DRIVERFILES += commands.c
SUBDIRS += drivers
libjtag_la_LIBADD += $(top_builddir)/src/jtag/drivers/libocdjtagdrivers.la
+# for minidriver_imp.h
+AM_CPPFLAGS += -I$(srcdir)/drivers
+
endif
# endif // MINIDRIVER
@@ -43,6 +49,7 @@ noinst_HEADERS = \
interfaces.h \
minidriver.h \
jtag.h \
+ minidriver/minidriver_imp.h \
minidummy/jtag_minidriver.h
EXTRA_DIST = startup.tcl
diff --git a/src/jtag/drivers/Makefile.am b/src/jtag/drivers/Makefile.am
index 0a007b4c..15fbae39 100644
--- a/src/jtag/drivers/Makefile.am
+++ b/src/jtag/drivers/Makefile.am
@@ -65,6 +65,7 @@ endif
noinst_HEADERS = \
bitbang.h \
bitq.h \
+ minidriver_imp.h \
rlink.h \
rlink_dtc_cmd.h \
rlink_ep1_cmd.h \
diff --git a/src/jtag/drivers/minidriver_imp.h b/src/jtag/drivers/minidriver_imp.h
new file mode 100644
index 00000000..f60580c4
--- /dev/null
+++ b/src/jtag/drivers/minidriver_imp.h
@@ -0,0 +1,47 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Dominic Rath <Dominic.Rath@gmx.de> *
+ * Copyright (C) 2007,2008 Øyvind Harboe <oyvind.harboe@zylin.com> *
+ * Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#ifndef MINIDRIVER_IMP_H
+#define MINIDRIVER_IMP_H
+
+#include "commands.h"
+
+static inline void interface_jtag_alloc_in_value32(struct scan_field *field)
+{
+ field->in_value = (uint8_t *)cmd_queue_alloc(4);
+}
+
+static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field)
+{
+ unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8);
+ field->in_value = (uint8_t *)cmd_queue_alloc(num_bytes);
+}
+
+void interface_jtag_add_dr_out(struct jtag_tap* tap,
+ int num_fields, const int* num_bits, const uint32_t* value,
+ tap_state_t end_state);
+
+void interface_jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0);
+
+void interface_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);
+
+#endif // MINIDRIVER_IMP_H
diff --git a/src/jtag/minidriver.h b/src/jtag/minidriver.h
index 392a1906..ea780faf 100644
--- a/src/jtag/minidriver.h
+++ b/src/jtag/minidriver.h
@@ -26,13 +26,14 @@
#ifndef MINIDRIVER_H
#define MINIDRIVER_H
-/* @page jtagminidriver JTAG Mini-Driver
+/**
+ * @page jtagminidriver JTAG Mini-Driver
*
* The JTAG minidriver interface allows the definition of alternate
* interface functions, instead of the built-in asynchronous driver
* module that is used by the standard JTAG interface drivers.
*
- * In addtion to the functions defined in the c minidriver.h file, the
+ * In addtion to the functions defined in the @c minidriver.h file, the
* @c jtag_minidriver.h file must declare the following functions (or
* define static inline versions of them):
* - jtag_add_callback
@@ -44,54 +45,9 @@
* - default_interface_jtag_execute_queue()
*/
-#ifdef HAVE_JTAG_MINIDRIVER_H
-
-#include "jtag_minidriver.h"
-
-static inline void interface_jtag_alloc_in_value32(struct scan_field *field)
-{
- field->in_value = field->intmp;
-}
-
-static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field)
-{
- /* We're executing this synchronously, so try to use local storage. */
- if (field->num_bits > 32)
- {
- unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8);
- field->in_value = (uint8_t *)malloc(num_bytes);
- field->allocated = 1;
- }
- else
- field->in_value = field->intmp;
-}
-
-#else
-
-#include "commands.h"
-
-static inline void interface_jtag_alloc_in_value32(struct scan_field *field)
-{
- field->in_value = (uint8_t *)cmd_queue_alloc(4);
-}
-
-static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field)
-{
- unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8);
- field->in_value = (uint8_t *)cmd_queue_alloc(num_bytes);
-}
-
-void interface_jtag_add_dr_out(struct jtag_tap* tap,
- int num_fields, const int* num_bits, const uint32_t* value,
- tap_state_t end_state);
-
-void interface_jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0);
-
-void interface_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);
-
-#endif
+// this header will be provided by the minidriver implementation,
+// and it may provide additional declarations that must be defined.
+#include "minidriver_imp.h"
int interface_jtag_add_ir_scan(
int num_fields, const struct scan_field* fields,
diff --git a/src/jtag/minidriver/minidriver_imp.h b/src/jtag/minidriver/minidriver_imp.h
new file mode 100644
index 00000000..e3715140
--- /dev/null
+++ b/src/jtag/minidriver/minidriver_imp.h
@@ -0,0 +1,44 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Dominic Rath <Dominic.Rath@gmx.de> *
+ * Copyright (C) 2007,2008 Øyvind Harboe <oyvind.harboe@zylin.com> *
+ * Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#ifndef MINIDRIVER_IMP_H
+#define MINIDRIVER_IMP_H
+
+#include "jtag_minidriver.h"
+
+static inline void interface_jtag_alloc_in_value32(struct scan_field *field)
+{
+ field->in_value = field->intmp;
+}
+
+static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field)
+{
+ /* We're executing this synchronously, so try to use local storage. */
+ if (field->num_bits > 32)
+ {
+ unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8);
+ field->in_value = (uint8_t *)malloc(num_bytes);
+ field->allocated = 1;
+ }
+ else
+ field->in_value = field->intmp;
+}
+
+#endif // MINIDRIVER_IMP_H