|
From: <zw...@ma...> - 2009-05-31 00:23:19
|
Author: zwelch
Date: 2009-05-31 00:23:12 +0200 (Sun, 31 May 2009)
New Revision: 1952
Modified:
trunk/src/jtag/jtag.c
trunk/src/jtag/jtag.h
trunk/src/openocd.c
Log:
Encapsulate the global "jtag" jtag_interface pointer:
- Add jtag_interface_quit, factored from exit_handler() in openocd.c.
- Remove its extern declaration.
- Add static keyword to its definition.
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-05-30 21:53:10 UTC (rev 1951)
+++ trunk/src/jtag/jtag.c 2009-05-30 22:23:12 UTC (rev 1952)
@@ -227,7 +227,7 @@
NULL,
};
-jtag_interface_t *jtag = NULL;
+static jtag_interface_t *jtag = NULL;
/* configuration */
static jtag_interface_t *jtag_interface = NULL;
@@ -2407,6 +2407,20 @@
return ERROR_OK;
}
+int jtag_interface_quit(void)
+{
+ if (!jtag || !jtag->quit)
+ return ERROR_OK;
+
+ // close the JTAG interface
+ int result = jtag->quit();
+ if (ERROR_OK != result)
+ LOG_ERROR("failed: %d", result);
+
+ return ERROR_OK;
+}
+
+
int jtag_init_reset(struct command_context_s *cmd_ctx)
{
int retval;
Modified: trunk/src/jtag/jtag.h
===================================================================
--- trunk/src/jtag/jtag.h 2009-05-30 21:53:10 UTC (rev 1951)
+++ trunk/src/jtag/jtag.h 2009-05-30 22:23:12 UTC (rev 1952)
@@ -512,8 +512,6 @@
extern jtag_event_callback_t* jtag_event_callbacks;
-extern jtag_interface_t* jtag; /* global pointer to configured JTAG interface */
-
extern int jtag_speed;
extern int jtag_speed_post_reset;
@@ -535,6 +533,9 @@
*/
extern int jtag_interface_init(struct command_context_s* cmd_ctx);
+/// Shutdown the JTAG interface upon program exit.
+extern int jtag_interface_quit(void);
+
/* initialize JTAG chain using only a RESET reset. If init fails,
* try reset + init.
*/
Modified: trunk/src/openocd.c
===================================================================
--- trunk/src/openocd.c 2009-05-30 21:53:10 UTC (rev 1951)
+++ trunk/src/openocd.c 2009-05-30 22:23:12 UTC (rev 1952)
@@ -79,9 +79,7 @@
static void exit_handler(void)
{
- /* close JTAG interface */
- if (jtag && jtag->quit)
- jtag->quit();
+ jtag_interface_quit();
}
static int log_target_callback_event_handler(struct target_s *target, enum target_event event, void *priv)
|