command_context_t -> struct command_context
[openocd.git] / src / jtag / amt_jtagaccel.c
index 7d0dd53c2b92e1fe95778dd892052bf3761b7b91..3fb77f8eb0d0766c56279010cdf6041d43a5c7a9 100644 (file)
 #endif
 
 /* configuration */
-static u16 amt_jtagaccel_port;
+static uint16_t amt_jtagaccel_port;
 
 /* interface variables
  */
-static u8 aw_control_rst = 0x00;
-static u8 aw_control_fsm = 0x10;
-static u8 aw_control_baudrate = 0x20;
+static uint8_t aw_control_rst = 0x00;
+static uint8_t aw_control_fsm = 0x10;
+static uint8_t aw_control_baudrate = 0x20;
 
 static int rtck_enabled = 0;
 
@@ -72,15 +72,6 @@ static int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
 
 #endif // PARPORT_USE_PPDEV
 
-static int amt_jtagaccel_execute_queue(void);
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
-static int amt_jtagaccel_speed(int speed);
-static int amt_jtagaccel_init(void);
-static int amt_jtagaccel_quit(void);
-
-static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-
 /* tap_move[i][j]: tap movement command to go from state i to state j
  * 0: Test-Logic-Reset
  * 1: Run-Test/Idle
@@ -89,11 +80,11 @@ static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx,
  * 4: Shift-IR
  * 5: Pause-IR
  */
-static u8 amt_jtagaccel_tap_move[6][6][2] =
+static uint8_t amt_jtagaccel_tap_move[6][6][2] =
 {
        /*         RESET         IDLE        DRSHIFT       DRPAUSE       IRSHIFT       IRPAUSE             */
-       {{0x1f, 0x00}, {0x0f, 0x00}, {0x8a, 0x04}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}},   /* RESET */
-       {{0x1f, 0x00}, {0x00, 0x00}, {0x85, 0x08}, {0x05, 0x00}, {0x8b, 0x08}, {0x0b, 0x00}},   /* IDLE */
+       {{0x1f, 0x00}, {0x0f, 0x00}, {0x05, 0x00}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}},   /* RESET */
+       {{0x1f, 0x00}, {0x00, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x0b, 0x00}},   /* IDLE */
        {{0x1f, 0x00}, {0x0d, 0x00}, {0x00, 0x00}, {0x01, 0x00}, {0x8f, 0x09}, {0x8f, 0x01}},   /* DRSHIFT  */
        {{0x1f, 0x00}, {0x0c, 0x00}, {0x08, 0x00}, {0x00, 0x00}, {0x8f, 0x09}, {0x8f, 0x01}},   /* DRPAUSE  */
        {{0x1f, 0x00}, {0x0d, 0x00}, {0x07, 0x00}, {0x97, 0x00}, {0x00, 0x00}, {0x01, 0x00}},   /* IRSHIFT  */
@@ -101,28 +92,6 @@ static u8 amt_jtagaccel_tap_move[6][6][2] =
 };
 
 
-jtag_interface_t amt_jtagaccel_interface =
-{
-       .name = "amt_jtagaccel",
-
-       .execute_queue = amt_jtagaccel_execute_queue,
-
-       .speed = amt_jtagaccel_speed,
-       .register_commands = amt_jtagaccel_register_commands,
-       .init = amt_jtagaccel_init,
-       .quit = amt_jtagaccel_quit,
-};
-
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
-{
-       register_command(cmd_ctx, NULL, "parport_port", amt_jtagaccel_handle_parport_port_command,
-                                        COMMAND_CONFIG, NULL);
-       register_command(cmd_ctx, NULL, "rtck", amt_jtagaccel_handle_rtck_command,
-                                        COMMAND_CONFIG, NULL);
-
-       return ERROR_OK;
-}
-
 static void amt_jtagaccel_reset(int trst, int srst)
 {
        if (trst == 1)
@@ -161,7 +130,7 @@ static void amt_jtagaccel_end_state(tap_state_t state)
 static void amt_wait_scan_busy(void)
 {
        int timeout = 4096;
-       u8 ar_status;
+       uint8_t ar_status;
 
        AMT_AR(ar_status);
        while (((ar_status) & 0x80) && (timeout-- > 0))
@@ -176,8 +145,8 @@ static void amt_wait_scan_busy(void)
 
 static void amt_jtagaccel_state_move(void)
 {
-       u8 aw_scan_tms_5;
-       u8 tms_scan[2];
+       uint8_t aw_scan_tms_5;
+       uint8_t tms_scan[2];
 
        tap_state_t     cur_state = tap_get_state();
        tap_state_t     end_state = tap_get_end_state();
@@ -205,8 +174,8 @@ static void amt_jtagaccel_state_move(void)
 static void amt_jtagaccel_runtest(int num_cycles)
 {
        int i = 0;
-       u8 aw_scan_tms_5;
-       u8 aw_scan_tms_1to4;
+       uint8_t aw_scan_tms_5;
+       uint8_t aw_scan_tms_1to4;
 
        tap_state_t saved_end_state = tap_get_end_state();
 
@@ -235,16 +204,16 @@ static void amt_jtagaccel_runtest(int num_cycles)
                amt_jtagaccel_state_move();
 }
 
-static void amt_jtagaccel_scan(bool ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void amt_jtagaccel_scan(bool ir_scan, enum scan_type type, uint8_t *buffer, int scan_size)
 {
        int bits_left = scan_size;
        int bit_count = 0;
        tap_state_t saved_end_state = tap_get_end_state();
-       u8 aw_tdi_option;
-       u8 dw_tdi_scan;
-       u8 dr_tdo;
-       u8 aw_tms_scan;
-       u8 tms_scan[2];
+       uint8_t aw_tdi_option;
+       uint8_t dw_tdi_scan;
+       uint8_t dr_tdo;
+       uint8_t aw_tms_scan;
+       uint8_t tms_scan[2];
        int jtag_speed = jtag_get_speed();
 
        if (ir_scan)
@@ -320,10 +289,10 @@ static void amt_jtagaccel_scan(bool ir_scan, enum scan_type type, u8 *buffer, in
 
 static int amt_jtagaccel_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;
-       u8 *buffer;
+       uint8_t *buffer;
        int retval;
 
        /* return ERROR_OK, unless a jtag_read_buffer returns a failed check
@@ -374,7 +343,7 @@ static int amt_jtagaccel_execute_queue(void)
                                break;
                        case JTAG_SLEEP:
 #ifdef _DEBUG_JTAG_IO_
-                               LOG_DEBUG("sleep %i", cmd->cmd.sleep->us);
+                               LOG_DEBUG("sleep %" PRIi32, cmd->cmd.sleep->us);
 #endif
                                jtag_sleep(cmd->cmd.sleep->us);
                                break;
@@ -395,20 +364,20 @@ int amt_jtagaccel_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;
 }
@@ -419,11 +388,11 @@ static int amt_jtagaccel_init(void)
 #if PARPORT_USE_PPDEV == 1
        char buffer[256];
        int i = 0;
-       u8 control_port;
+       uint8_t control_port;
 #else
-       u8 status_port;
+       uint8_t status_port;
 #endif
-       u8 ar_status;
+       uint8_t ar_status;
 
 #if PARPORT_USE_PPDEV == 1
        if (device_handle > 0)
@@ -526,19 +495,30 @@ static int amt_jtagaccel_quit(void)
        return ERROR_OK;
 }
 
-static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_parport_port_command)
 {
-       if (argc == 0)
-               return ERROR_OK;
+       if (argc == 1)
+       {
+               /* only if the port wasn't overwritten by cmdline */
+               if (amt_jtagaccel_port == 0)
+               {
+                       uint16_t port;
+                       COMMAND_PARSE_NUMBER(u16, args[0], port);
+                       amt_jtagaccel_port = port;
+               }
+               else
+               {
+                       LOG_ERROR("The parport port was already configured!");
+                       return ERROR_FAIL;
+               }
+       }
 
-       /* only if the port wasn't overwritten by cmdline */
-       if (amt_jtagaccel_port == 0)
-               amt_jtagaccel_port = strtoul(args[0], NULL, 0);
+       command_print(cmd_ctx, "parport port = %u", amt_jtagaccel_port);
 
        return ERROR_OK;
 }
 
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_rtck_command)
 {
        if (argc == 0)
        {
@@ -559,3 +539,24 @@ static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx,
 
        return ERROR_OK;
 }
+
+static int amt_jtagaccel_register_commands(struct command_context *cmd_ctx)
+{
+       register_command(cmd_ctx, NULL, "parport_port",
+                       amt_jtagaccel_handle_parport_port_command, COMMAND_CONFIG,
+                       NULL);
+       register_command(cmd_ctx, NULL, "rtck",
+                       amt_jtagaccel_handle_rtck_command, COMMAND_CONFIG,
+                       NULL);
+
+       return ERROR_OK;
+}
+
+struct jtag_interface amt_jtagaccel_interface = {
+               .name = "amt_jtagaccel",
+               .register_commands = &amt_jtagaccel_register_commands,
+               .init = &amt_jtagaccel_init,
+               .quit = &amt_jtagaccel_quit,
+               .speed = &amt_jtagaccel_speed,
+               .execute_queue = &amt_jtagaccel_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)