openocd: manually fix Yoda conditions
[fw/openocd] / src / jtag / drivers / xds110.c
index 5e4df93c2d1a2fcfc8c98e9888a00709fafa0862..1a17f70cc882fb00697d2e2d0ee0b2d091a992e6 100644 (file)
 #define CMD_STABLECLOCKS 4
 
 /* Array to convert from OpenOCD tap_state_t to XDS JTAG state */
-const uint32_t xds_jtag_state[] = {
+static const uint32_t xds_jtag_state[] = {
        XDS_JTAG_STATE_EXIT2_DR,   /* TAP_DREXIT2   = 0x0 */
        XDS_JTAG_STATE_EXIT1_DR,   /* TAP_DREXIT1   = 0x1 */
        XDS_JTAG_STATE_SHIFT_DR,   /* TAP_DRSHIFT   = 0x2 */
@@ -213,8 +213,8 @@ struct scan_result {
 
 struct xds110_info {
        /* USB connection handles and data buffers */
-       libusb_context *ctx;
-       libusb_device_handle *dev;
+       struct libusb_context *ctx;
+       struct libusb_device_handle *dev;
        unsigned char read_payload[USB_PAYLOAD_SIZE];
        unsigned char write_packet[3];
        unsigned char write_payload[USB_PAYLOAD_SIZE];
@@ -317,9 +317,9 @@ static inline uint16_t xds110_get_u16(uint8_t *buffer)
 
 static bool usb_connect(void)
 {
-       libusb_context *ctx  = NULL;
-       libusb_device **list = NULL;
-       libusb_device_handle *dev  = NULL;
+       struct libusb_context *ctx  = NULL;
+       struct libusb_device **list = NULL;
+       struct libusb_device_handle *dev  = NULL;
 
        struct libusb_device_descriptor desc;
 
@@ -356,7 +356,7 @@ static bool usb_connect(void)
                        /* Check for device vid/pid match */
                        libusb_get_device_descriptor(list[i], &desc);
                        match = false;
-                       for (device = 0; device < sizeof(vids)/sizeof(vids[0]); device++) {
+                       for (device = 0; device < ARRAY_SIZE(vids); device++) {
                                if (desc.idVendor == vids[device] &&
                                        desc.idProduct == pids[device]) {
                                        match = true;
@@ -379,8 +379,8 @@ static bool usb_connect(void)
                                                /* Get the device's serial number string */
                                                result = libusb_get_string_descriptor_ascii(dev,
                                                                        desc.iSerialNumber, data, max_data);
-                                               if (0 < result &&
-                                                       0 == strcmp((char *)data, (char *)xds110.serial)) {
+                                               if (result > 0 &&
+                                                       strcmp((char *)data, (char *)xds110.serial) == 0) {
                                                        found = true;
                                                        break;
                                                }
@@ -497,7 +497,7 @@ static bool usb_write(unsigned char *buffer, int size, int *written)
        result = libusb_bulk_transfer(xds110.dev, xds110.endpoint_out, buffer,
                                size, &bytes_written, 0);
 
-       while (LIBUSB_ERROR_PIPE == result && retries < 3) {
+       while (result == LIBUSB_ERROR_PIPE && retries < 3) {
                /* Try clearing the pipe stall and retry transfer */
                libusb_clear_halt(xds110.dev, xds110.endpoint_out);
                result = libusb_bulk_transfer(xds110.dev, xds110.endpoint_out, buffer,
@@ -508,7 +508,7 @@ static bool usb_write(unsigned char *buffer, int size, int *written)
        if (NULL != written)
                *written = bytes_written;
 
-       return (0 == result && size == bytes_written) ? true : false;
+       return (result == 0 && size == bytes_written) ? true : false;
 }
 
 static bool usb_get_response(uint32_t *total_bytes_read, uint32_t timeout)
@@ -655,13 +655,13 @@ static bool xds_execute(uint32_t out_length, uint32_t in_length,
                        if (bytes_read != in_length) {
                                /* Unexpected amount of data returned */
                                success = false;
-                               LOG_DEBUG("XDS110: command 0x%02x return %d bytes, expected %d",
+                               LOG_DEBUG("XDS110: command 0x%02x return %" PRIu32 " bytes, expected %" PRIu32,
                                        xds110.write_payload[0], bytes_read, in_length);
                        } else {
                                /* Extract error code from return packet */
                                error = (int)xds110_get_u32(&xds110.read_payload[0]);
                                done = true;
-                               if (SC_ERR_NONE != error)
+                               if (error != SC_ERR_NONE)
                                        LOG_DEBUG("XDS110: command 0x%02x returned error %d",
                                                xds110.write_payload[0], error);
                        }
@@ -1021,7 +1021,7 @@ static bool xds_set_supply(uint32_t voltage)
        xds110.write_payload[0] = XDS_SET_SUPPLY;
 
        xds110_set_u32(volts_pntr, voltage);
-       *source_pntr = (uint8_t)(0 != voltage ? 1 : 0);
+       *source_pntr = (uint8_t)(voltage != 0 ? 1 : 0);
 
        success = xds_execute(XDS_OUT_LEN + 5, XDS_IN_LEN, DEFAULT_ATTEMPTS,
                                DEFAULT_TIMEOUT);
@@ -1129,7 +1129,7 @@ static int xds110_swd_switch_seq(enum swd_special_seq seq)
                xds110.is_cmapi_acquired = false;
                /* Run sequence to put target in SWD mode */
                success = swd_connect();
-               /* Re-iniitialize CMAPI API for DAP access */
+               /* Re-initialize CMAPI API for DAP access */
                if (success) {
                        xds110.is_swd_mode = true;
                        success = cmapi_connect(&idcode);
@@ -1165,9 +1165,9 @@ static int xds110_swd_switch_seq(enum swd_special_seq seq)
 static bool xds110_legacy_read_reg(uint8_t cmd, uint32_t *value)
 {
        /* Make sure this is a read request */
-       bool is_read_request = (0 != (SWD_CMD_RnW & cmd));
+       bool is_read_request = (0 != (SWD_CMD_RNW & cmd));
        /* Determine whether this is a DP or AP register access */
-       uint32_t type = (0 != (SWD_CMD_APnDP & cmd)) ? DAP_AP : DAP_DP;
+       uint32_t type = (0 != (SWD_CMD_APNDP & cmd)) ? DAP_AP : DAP_DP;
        /* Determine the AP number from cached SELECT value */
        uint32_t ap_num = (xds110.select & 0xff000000) >> 24;
        /* Extract register address from command */
@@ -1183,7 +1183,7 @@ static bool xds110_legacy_read_reg(uint8_t cmd, uint32_t *value)
        if (!is_read_request)
                return false;
 
-       if (DAP_AP == type) {
+       if (type == DAP_AP) {
                /* Add bank address to register address for CMAPI call */
                address |= bank;
        }
@@ -1227,9 +1227,9 @@ static bool xds110_legacy_read_reg(uint8_t cmd, uint32_t *value)
 static bool xds110_legacy_write_reg(uint8_t cmd, uint32_t value)
 {
        /* Make sure this isn't a read request */
-       bool is_read_request = (0 != (SWD_CMD_RnW & cmd));
+       bool is_read_request = (0 != (SWD_CMD_RNW & cmd));
        /* Determine whether this is a DP or AP register access */
-       uint32_t type = (0 != (SWD_CMD_APnDP & cmd)) ? DAP_AP : DAP_DP;
+       uint32_t type = (0 != (SWD_CMD_APNDP & cmd)) ? DAP_AP : DAP_DP;
        /* Determine the AP number from cached SELECT value */
        uint32_t ap_num = (xds110.select & 0xff000000) >> 24;
        /* Extract register address from command */
@@ -1245,12 +1245,12 @@ static bool xds110_legacy_write_reg(uint8_t cmd, uint32_t value)
        /* Invalidate the RDBUFF cache */
        xds110.use_rdbuff = false;
 
-       if (DAP_AP == type) {
+       if (type == DAP_AP) {
                /* Add bank address to register address for CMAPI call */
                address |= bank;
                /* Any write to an AP register invalidates the firmware's cache */
                xds110.is_ap_dirty = true;
-       } else if (DAP_DP_SELECT == address) {
+       } else if (address == DAP_DP_SELECT) {
                /* Any write to the SELECT register invalidates the firmware's cache */
                xds110.is_ap_dirty = true;
        }
@@ -1264,7 +1264,7 @@ static bool xds110_legacy_write_reg(uint8_t cmd, uint32_t value)
                 * If the debugger wrote to SELECT, cache the value
                 * to use to build the apNum and address values above
                 */
-               if ((DAP_DP == type) && (DAP_DP_SELECT == address))
+               if ((type == DAP_DP) && (address == DAP_DP_SELECT))
                        xds110.select = value;
        }
 
@@ -1296,7 +1296,7 @@ static int xds110_swd_run_queue(void)
                result = 0;
                while (xds110.txn_requests[request] != 0) {
                        cmd = xds110.txn_requests[request++];
-                       if (0 == (SWD_CMD_RnW & cmd)) {
+                       if (0 == (SWD_CMD_RNW & cmd)) {
                                /* DAP register write command */
                                value  = (uint32_t)(xds110.txn_requests[request++]) <<  0;
                                value |= (uint32_t)(xds110.txn_requests[request++]) <<  8;
@@ -1329,9 +1329,9 @@ static int xds110_swd_run_queue(void)
 static void xds110_swd_queue_cmd(uint8_t cmd, uint32_t *value)
 {
        /* Check if this is a read or write request */
-       bool is_read_request = (0 != (SWD_CMD_RnW & cmd));
+       bool is_read_request = (0 != (SWD_CMD_RNW & cmd));
        /* Determine whether this is a DP or AP register access */
-       uint32_t type = (0 != (SWD_CMD_APnDP & cmd)) ? DAP_AP : DAP_DP;
+       uint32_t type = (0 != (SWD_CMD_APNDP & cmd)) ? DAP_AP : DAP_DP;
        /* Extract register address from command */
        uint32_t address = ((cmd & SWD_CMD_A32) >> 1);
        uint32_t request_size = (is_read_request) ? 1 : 5;
@@ -1389,7 +1389,7 @@ static void xds110_show_info(void)
        uint32_t firmware = xds110.firmware;
 
        LOG_INFO("XDS110: vid/pid = %04x/%04x", xds110.vid, xds110.pid);
-       LOG_INFO("XDS110: firmware version = %d.%d.%d.%d",
+       LOG_INFO("XDS110: firmware version = %" PRIu32 ".%" PRIu32 ".%" PRIu32 ".%" PRIu32,
                (((firmware >> 28) & 0xf) * 10) + ((firmware >> 24) & 0xf),
                (((firmware >> 20) & 0xf) * 10) + ((firmware >> 16) & 0xf),
                (((firmware >> 12) & 0xf) * 10) + ((firmware >>  8) & 0xf),
@@ -1399,10 +1399,10 @@ static void xds110_show_info(void)
                LOG_INFO("XDS110: serial number = %s", xds110.serial);
        if (xds110.is_swd_mode) {
                LOG_INFO("XDS110: connected to target via SWD");
-               LOG_INFO("XDS110: SWCLK set to %d kHz", xds110.speed);
+               LOG_INFO("XDS110: SWCLK set to %" PRIu32 " kHz", xds110.speed);
        } else {
                LOG_INFO("XDS110: connected to target via JTAG");
-               LOG_INFO("XDS110: TCK set to %d kHz", xds110.speed);
+               LOG_INFO("XDS110: TCK set to %" PRIu32 " kHz", xds110.speed);
        }
 
        /* Alert user that there's a better firmware to use */
@@ -1756,7 +1756,7 @@ static void xds110_queue_scan(struct jtag_command *cmd)
 
        /* Check if this single request is too large to fit */
        if ((1 + total_bytes + sizeof(end_state) + 1) > MAX_DATA_BLOCK) {
-               LOG_ERROR("BUG: JTAG scan request is too large to handle (%d bits)",
+               LOG_ERROR("BUG: JTAG scan request is too large to handle (%" PRIu32 " bits)",
                        total_bits);
                /* Failing to run this scan mucks up debug on this target */
                exit(-1);
@@ -2057,7 +2057,7 @@ COMMAND_HANDLER(xds110_handle_supply_voltage_command)
        uint32_t voltage = 0;
 
        if (CMD_ARGC == 1) {
-               COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], voltage);
+               COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], voltage);
                if (voltage == 0 || (voltage >= XDS110_MIN_VOLTAGE && voltage
                        <= XDS110_MAX_VOLTAGE)) {
                        /* Requested voltage is in range */