update minidummy interface driver command handling
[openocd.git] / src / jtag / gw16012.c
index 7096d62c04fa0100c58c5be6a8a16e36917e0835..b827fd53a12e543acf3f48c32a77c8e708674cb2 100644 (file)
@@ -78,34 +78,6 @@ static uint8_t gw16012_control_value = 0x0;
 static int device_handle;
 #endif
 
-static int gw16012_execute_queue(void);
-static int gw16012_register_commands(struct command_context_s *cmd_ctx);
-static int gw16012_speed(int speed);
-static int gw16012_init(void);
-static int gw16012_quit(void);
-
-static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-
-jtag_interface_t gw16012_interface =
-{
-       .name = "gw16012",
-
-       .execute_queue = gw16012_execute_queue,
-
-       .speed = gw16012_speed,
-       .register_commands = gw16012_register_commands,
-       .init = gw16012_init,
-       .quit = gw16012_quit,
-};
-
-static int gw16012_register_commands(struct command_context_s *cmd_ctx)
-{
-       register_command(cmd_ctx, NULL, "parport_port", gw16012_handle_parport_port_command,
-                                        COMMAND_CONFIG, NULL);
-
-       return ERROR_OK;
-}
-
 static void gw16012_data(uint8_t value)
 {
        value = (value & 0x7f) | gw16012_msb;
@@ -211,7 +183,7 @@ static void gw16012_state_move(void)
        tap_set_state(tap_get_end_state());
 }
 
-static void gw16012_path_move(pathmove_command_t *cmd)
+static void gw16012_path_move(struct pathmove_command *cmd)
 {
        int num_states = cmd->num_states;
        int state_count;
@@ -340,7 +312,7 @@ static void gw16012_scan(bool ir_scan, enum scan_type type, uint8_t *buffer, int
 
 static int gw16012_execute_queue(void)
 {
-       jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
+       struct jtag_command *cmd = jtag_command_queue; /* currently processed command */
        int scan_size;
        enum scan_type type;
        uint8_t *buffer;
@@ -422,20 +394,20 @@ static int gw16012_get_giveio_access(void)
        OSVERSIONINFO version;
 
        version.dwOSVersionInfoSize = sizeof version;
-       if (!GetVersionEx( &version )) {
+       if (!GetVersionEx(&version)) {
                errno = EINVAL;
                return -1;
        }
        if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
                return 0;
 
-       h = CreateFile( "\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
+       h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if (h == INVALID_HANDLE_VALUE) {
                errno = ENODEV;
                return -1;
        }
 
-       CloseHandle( h );
+       CloseHandle(h);
 
        return 0;
 }
@@ -524,7 +496,7 @@ static int gw16012_init_device(void)
                LOG_WARNING("No gw16012 port specified, using default '0x378' (LPT1)");
        }
 
-       LOG_DEBUG("requesting privileges for parallel port 0x%lx...", (long unsigned)(gw16012_port) );
+       LOG_DEBUG("requesting privileges for parallel port 0x%lx...", (long unsigned)(gw16012_port));
 #if PARPORT_USE_GIVEIO == 1
        if (gw16012_get_giveio_access() != 0)
 #else /* PARPORT_USE_GIVEIO */
@@ -569,16 +541,14 @@ static int gw16012_quit(void)
        return ERROR_OK;
 }
 
-static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(gw16012_handle_parport_port_command)
 {
-       if (argc == 1)
+       if (CMD_ARGC == 1)
        {
                /* only if the port wasn't overwritten by cmdline */
                if (gw16012_port == 0)
                {
-                       int retval = parse_u16(args[0], &gw16012_port);
-                       if (ERROR_OK != retval)
-                               return retval;
+                       COMMAND_PARSE_NUMBER(u16, CMD_ARGV[0], gw16012_port);
                }
                else
                {
@@ -587,7 +557,27 @@ static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx
                }
        }
 
-       command_print(cmd_ctx, "parport port = %u", gw16012_port);
+       command_print(CMD_CTX, "parport port = %u", gw16012_port);
 
        return ERROR_OK;
 }
+
+static const struct command_registration gw16012_command_handlers[] = {
+       {
+               .name = "parport_port",
+               .handler = &gw16012_handle_parport_port_command,
+               .mode = COMMAND_CONFIG,
+               .help = "configure the parallel port to use",
+               .usage = "<port_num>",
+       },
+       COMMAND_REGISTRATION_DONE
+};
+
+struct jtag_interface gw16012_interface = {
+               .name = "gw16012",
+               .commands = gw16012_command_handlers,
+               .init = &gw16012_init,
+               .quit = &gw16012_quit,
+               .speed = &gw16012_speed,
+               .execute_queue = &gw16012_execute_queue,
+       };

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)