stlink: dequeue CSW write only if it doesn't change csw_default
[openocd.git] / src / jtag / drivers / jtag_dpi.c
index 575c6bce2da3c058e8c85dcc39f3d41538afc763..016ff55366a383e51fb540acef2e44c7c2c87bc6 100644 (file)
@@ -49,7 +49,7 @@ static int last_ir_num_bits;
 
 static int write_sock(char *buf, size_t len)
 {
-       if (buf == NULL) {
+       if (!buf) {
                LOG_ERROR("%s: NULL 'buf' argument, file %s, line %d",
                        __func__, __FILE__, __LINE__);
                return ERROR_FAIL;
@@ -64,7 +64,7 @@ static int write_sock(char *buf, size_t len)
 
 static int read_sock(char *buf, size_t len)
 {
-       if (buf == NULL) {
+       if (!buf) {
                LOG_ERROR("%s: NULL 'buf' argument, file %s, line %d",
                        __func__, __FILE__, __LINE__);
                return ERROR_FAIL;
@@ -79,8 +79,8 @@ static int read_sock(char *buf, size_t len)
 
 /**
  * jtag_dpi_reset - ask to reset the JTAG device
- * @trst: 1 if TRST is to be asserted
- * @srst: 1 if SRST is to be asserted
+ * @param trst 1 if TRST is to be asserted
+ * @param srst 1 if SRST is to be asserted
  */
 static int jtag_dpi_reset(int trst, int srst)
 {
@@ -109,11 +109,11 @@ static int jtag_dpi_reset(int trst, int srst)
 
 /**
  * jtag_dpi_scan - launches a DR-scan or IR-scan
- * @cmd: the command to launch
+ * @param cmd the command to launch
  *
  * Launch a JTAG IR-scan or DR-scan
  *
- * Returns ERROR_OK if OK, ERROR_xxx if a read/write error occured.
+ * Returns ERROR_OK if OK, ERROR_xxx if a read/write error occurred.
  */
 static int jtag_dpi_scan(struct scan_command *cmd)
 {
@@ -123,7 +123,7 @@ static int jtag_dpi_scan(struct scan_command *cmd)
        int ret = ERROR_OK;
 
        num_bits = jtag_build_buffer(cmd, &data_buf);
-       if (data_buf == NULL) {
+       if (!data_buf) {
                LOG_ERROR("jtag_build_buffer call failed, data_buf == NULL, "
                        "file %s, line %d", __FILE__, __LINE__);
                return ERROR_FAIL;
@@ -133,7 +133,7 @@ static int jtag_dpi_scan(struct scan_command *cmd)
        if (cmd->ir_scan) {
                free(last_ir_buf);
                last_ir_buf = (uint8_t *)malloc(bytes * sizeof(uint8_t));
-               if (last_ir_buf == NULL) {
+               if (!last_ir_buf) {
                        LOG_ERROR("%s: malloc fail, file %s, line %d",
                                __func__, __FILE__, __LINE__);
                        ret = ERROR_FAIL;
@@ -181,7 +181,7 @@ static int jtag_dpi_runtest(int cycles)
        int num_bits = last_ir_num_bits, bytes;
        int ret = ERROR_OK;
 
-       if (data_buf == NULL) {
+       if (!data_buf) {
                LOG_ERROR("%s: NULL 'data_buf' argument, file %s, line %d",
                        __func__, __FILE__, __LINE__);
                return ERROR_FAIL;
@@ -194,7 +194,7 @@ static int jtag_dpi_runtest(int cycles)
 
        bytes = DIV_ROUND_UP(num_bits, 8);
        read_scan = (uint8_t *)malloc(bytes * sizeof(uint8_t));
-       if (read_scan == NULL) {
+       if (!read_scan) {
                LOG_ERROR("%s: malloc fail, file %s, line %d",
                        __func__, __FILE__, __LINE__);
                return ERROR_FAIL;
@@ -238,7 +238,7 @@ static int jtag_dpi_execute_queue(void)
        struct jtag_command *cmd;
        int ret = ERROR_OK;
 
-       for (cmd = jtag_command_queue; ret == ERROR_OK && cmd != NULL;
+       for (cmd = jtag_command_queue; ret == ERROR_OK && cmd;
             cmd = cmd->next) {
                switch (cmd->type) {
                case JTAG_RUNTEST:
@@ -289,9 +289,9 @@ static int jtag_dpi_init(void)
        serv_addr.sin_family = AF_INET;
        serv_addr.sin_port = htons(server_port);
 
-       if (server_address == NULL) {
+       if (!server_address) {
                server_address = strdup(SERVER_ADDRESS);
-               if (server_address == NULL) {
+               if (!server_address) {
                        LOG_ERROR("%s: strdup fail, file %s, line %d",
                                __func__, __FILE__, __LINE__);
                        return ERROR_FAIL;
@@ -301,7 +301,7 @@ static int jtag_dpi_init(void)
        serv_addr.sin_addr.s_addr = inet_addr(server_address);
 
        if (serv_addr.sin_addr.s_addr == INADDR_NONE) {
-               LOG_ERROR("inet_addr error occured");
+               LOG_ERROR("inet_addr error occurred");
                return ERROR_FAIL;
        }
 
@@ -350,9 +350,9 @@ COMMAND_HANDLER(jtag_dpi_set_address)
        if (CMD_ARGC > 1)
                return ERROR_COMMAND_SYNTAX_ERROR;
        else if (CMD_ARGC == 0) {
-               if (server_address == NULL) {
+               if (!server_address) {
                        server_address = strdup(SERVER_ADDRESS);
-                       if (server_address == NULL) {
+                       if (!server_address) {
                                LOG_ERROR("%s: strdup fail, file %s, line %d",
                                        __func__, __FILE__, __LINE__);
                                return ERROR_FAIL;
@@ -362,7 +362,7 @@ COMMAND_HANDLER(jtag_dpi_set_address)
        } else {
                free(server_address);
                server_address = strdup(CMD_ARGV[0]);
-               if (server_address == NULL) {
+               if (!server_address) {
                        LOG_ERROR("%s: strdup fail, file %s, line %d",
                                __func__, __FILE__, __LINE__);
                        return ERROR_FAIL;
@@ -373,16 +373,16 @@ COMMAND_HANDLER(jtag_dpi_set_address)
        return ERROR_OK;
 }
 
-static const struct command_registration jtag_dpi_command_handlers[] = {
+static const struct command_registration jtag_dpi_subcommand_handlers[] = {
        {
-               .name = "jtag_dpi_set_port",
+               .name = "set_port",
                .handler = &jtag_dpi_set_port,
                .mode = COMMAND_CONFIG,
                .help = "set the port of the DPI server",
                .usage = "[port]",
        },
        {
-               .name = "jtag_dpi_set_address",
+               .name = "set_address",
                .handler = &jtag_dpi_set_address,
                .mode = COMMAND_CONFIG,
                .help = "set the address of the DPI server",
@@ -391,6 +391,17 @@ static const struct command_registration jtag_dpi_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
+static const struct command_registration jtag_dpi_command_handlers[] = {
+       {
+               .name = "jtag_dpi",
+               .mode = COMMAND_ANY,
+               .help = "perform jtag_dpi management",
+               .chain = jtag_dpi_subcommand_handlers,
+               .usage = "",
+       },
+       COMMAND_REGISTRATION_DONE
+};
+
 static struct jtag_interface jtag_dpi_interface = {
        .supported = DEBUG_CAP_TMS_SEQ,
        .execute_queue = jtag_dpi_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)