remove #if HAVE_JTAG_INTERFACE_H from minidriver.h
authorZachary T Welch <zw@superlucidity.net>
Thu, 3 Dec 2009 01:30:33 +0000 (17:30 -0800)
committerZachary T Welch <zw@superlucidity.net>
Thu, 3 Dec 2009 07:27:09 +0000 (23:27 -0800)
Adds two "minidriver_imp.h" files, so the right one is allowed to be
"#included" by the Makefile logic.

src/jtag/Makefile.am
src/jtag/drivers/Makefile.am
src/jtag/drivers/minidriver_imp.h [new file with mode: 0644]
src/jtag/minidriver.h
src/jtag/minidriver/minidriver_imp.h [new file with mode: 0644]

index c735897..421987c 100644 (file)
@@ -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
index 0a007b4..15fbae3 100644 (file)
@@ -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 (file)
index 0000000..f60580c
--- /dev/null
@@ -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
index 392a190..ea780fa 100644 (file)
 #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
  * - 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 (file)
index 0000000..e371514
--- /dev/null
@@ -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