Encapsulate the global "jtag" jtag_interface pointer:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sat, 30 May 2009 22:23:12 +0000 (22:23 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sat, 30 May 2009 22:23:12 +0000 (22:23 +0000)
- Add jtag_interface_quit, factored from exit_handler() in openocd.c.
- Remove its extern declaration.
- Add static keyword to its definition.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1952 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jtag.c
src/jtag/jtag.h
src/openocd.c

index ecd4931afddc3472deddd6b7b07e0484d3301d27..c9167f41aec523696aaa0e831e19c7b1ad4688c7 100644 (file)
@@ -227,7 +227,7 @@ jtag_interface_t *jtag_interfaces[] = {
        NULL,
 };
 
-jtag_interface_t *jtag = NULL;
+static jtag_interface_t *jtag = NULL;
 
 /* configuration */
 static jtag_interface_t *jtag_interface = NULL;
@@ -2407,6 +2407,20 @@ static int jtag_init_inner(struct command_context_s *cmd_ctx)
        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;
index af4c64da4e0c095b0d7fa3012dccfb95cdc050e9..00a7bc83721e518eacf18d817fa35b7bf215ab93 100644 (file)
@@ -512,8 +512,6 @@ typedef struct jtag_event_callback_s
 
 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 enum reset_types jtag_reset_config;
  */
 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.
  */
index 656644649e94f865e46c55a776a7847f06be980b..026a32b3f2f1dc062064297a7753fe0489946bb9 100644 (file)
@@ -79,9 +79,7 @@ static int handle_version_command(struct command_context_s *cmd_ctx, char *cmd,
 
 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)

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)