Skip to content

Commit fc0ec6c

Browse files
zapb-0borneoa
authored andcommitted
adapter/jlink: Use COMMAND_PARSE_* instead of sscanf()
While at it, apply some coding style fixes. Change-Id: I77a6917a045af733ebe9211ca338952dbd49c89b Signed-off-by: Marc Schink <[email protected]> Reviewed-on: https://review.openocd.org/c/openocd/+/8416 Reviewed-by: Antonio Borneo <[email protected]> Tested-by: jenkins
1 parent 2b6d63a commit fc0ec6c

File tree

1 file changed

+31
-52
lines changed

1 file changed

+31
-52
lines changed

src/jtag/drivers/jlink.c

Lines changed: 31 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -961,23 +961,18 @@ static int jlink_reset_safe(int trst, int srst)
961961

962962
COMMAND_HANDLER(jlink_usb_command)
963963
{
964-
int tmp;
965-
966964
if (CMD_ARGC != 1)
967965
return ERROR_COMMAND_SYNTAX_ERROR;
968966

969-
if (sscanf(CMD_ARGV[0], "%i", &tmp) != 1) {
970-
command_print(CMD, "Invalid USB address: %s", CMD_ARGV[0]);
971-
return ERROR_COMMAND_ARGUMENT_INVALID;
972-
}
967+
unsigned int tmp;
968+
COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], tmp);
973969

974-
if (tmp < JAYLINK_USB_ADDRESS_0 || tmp > JAYLINK_USB_ADDRESS_3) {
970+
if (tmp > JAYLINK_USB_ADDRESS_3) {
975971
command_print(CMD, "Invalid USB address: %s", CMD_ARGV[0]);
976972
return ERROR_COMMAND_ARGUMENT_INVALID;
977973
}
978974

979975
usb_address = tmp;
980-
981976
use_usb_address = true;
982977

983978
return ERROR_OK;
@@ -1035,38 +1030,35 @@ COMMAND_HANDLER(jlink_handle_free_memory_command)
10351030

10361031
COMMAND_HANDLER(jlink_handle_jlink_jtag_command)
10371032
{
1038-
int tmp;
1039-
int version;
1040-
10411033
if (!CMD_ARGC) {
1034+
unsigned int version;
1035+
10421036
switch (jtag_command_version) {
1043-
case JAYLINK_JTAG_VERSION_2:
1044-
version = 2;
1045-
break;
1046-
case JAYLINK_JTAG_VERSION_3:
1047-
version = 3;
1048-
break;
1049-
default:
1050-
return ERROR_FAIL;
1037+
case JAYLINK_JTAG_VERSION_2:
1038+
version = 2;
1039+
break;
1040+
case JAYLINK_JTAG_VERSION_3:
1041+
version = 3;
1042+
break;
1043+
default:
1044+
return ERROR_FAIL;
10511045
}
10521046

1053-
command_print(CMD, "JTAG command version: %i", version);
1047+
command_print(CMD, "JTAG command version: %u", version);
10541048
} else if (CMD_ARGC == 1) {
1055-
if (sscanf(CMD_ARGV[0], "%i", &tmp) != 1) {
1056-
command_print(CMD, "Invalid argument: %s", CMD_ARGV[0]);
1057-
return ERROR_COMMAND_ARGUMENT_INVALID;
1058-
}
1049+
uint8_t tmp;
1050+
COMMAND_PARSE_NUMBER(u8, CMD_ARGV[0], tmp);
10591051

10601052
switch (tmp) {
1061-
case 2:
1062-
jtag_command_version = JAYLINK_JTAG_VERSION_2;
1063-
break;
1064-
case 3:
1065-
jtag_command_version = JAYLINK_JTAG_VERSION_3;
1066-
break;
1067-
default:
1068-
command_print(CMD, "Invalid argument: %s", CMD_ARGV[0]);
1069-
return ERROR_COMMAND_ARGUMENT_INVALID;
1053+
case 2:
1054+
jtag_command_version = JAYLINK_JTAG_VERSION_2;
1055+
break;
1056+
case 3:
1057+
jtag_command_version = JAYLINK_JTAG_VERSION_3;
1058+
break;
1059+
default:
1060+
command_print(CMD, "Invalid argument: %s", CMD_ARGV[0]);
1061+
return ERROR_COMMAND_ARGUMENT_INVALID;
10701062
}
10711063
} else {
10721064
return ERROR_COMMAND_SYNTAX_ERROR;
@@ -1077,9 +1069,6 @@ COMMAND_HANDLER(jlink_handle_jlink_jtag_command)
10771069

10781070
COMMAND_HANDLER(jlink_handle_target_power_command)
10791071
{
1080-
int ret;
1081-
int enable;
1082-
10831072
if (CMD_ARGC != 1)
10841073
return ERROR_COMMAND_SYNTAX_ERROR;
10851074

@@ -1089,16 +1078,10 @@ COMMAND_HANDLER(jlink_handle_target_power_command)
10891078
return ERROR_OK;
10901079
}
10911080

1092-
if (!strcmp(CMD_ARGV[0], "on")) {
1093-
enable = true;
1094-
} else if (!strcmp(CMD_ARGV[0], "off")) {
1095-
enable = false;
1096-
} else {
1097-
command_print(CMD, "Invalid argument: %s", CMD_ARGV[0]);
1098-
return ERROR_FAIL;
1099-
}
1081+
bool enable;
1082+
COMMAND_PARSE_ON_OFF(CMD_ARGV[0], enable);
11001083

1101-
ret = jaylink_set_target_power(devh, enable);
1084+
int ret = jaylink_set_target_power(devh, enable);
11021085

11031086
if (ret != JAYLINK_OK) {
11041087
command_print(CMD, "jaylink_set_target_power() failed: %s",
@@ -1407,8 +1390,6 @@ static int config_trace(bool enabled, enum tpiu_pin_protocol pin_protocol,
14071390

14081391
COMMAND_HANDLER(jlink_handle_config_usb_address_command)
14091392
{
1410-
uint8_t tmp;
1411-
14121393
if (!jaylink_has_cap(caps, JAYLINK_DEV_CAP_READ_CONFIG)) {
14131394
command_print(CMD, "Reading configuration is not supported by the "
14141395
"device");
@@ -1418,10 +1399,8 @@ COMMAND_HANDLER(jlink_handle_config_usb_address_command)
14181399
if (!CMD_ARGC) {
14191400
show_config_usb_address(CMD);
14201401
} else if (CMD_ARGC == 1) {
1421-
if (sscanf(CMD_ARGV[0], "%" SCNd8, &tmp) != 1) {
1422-
command_print(CMD, "Invalid USB address: %s", CMD_ARGV[0]);
1423-
return ERROR_COMMAND_ARGUMENT_INVALID;
1424-
}
1402+
uint8_t tmp;
1403+
COMMAND_PARSE_NUMBER(u8, CMD_ARGV[0], tmp);
14251404

14261405
if (tmp > JAYLINK_USB_ADDRESS_3) {
14271406
command_print(CMD, "Invalid USB address: %u", tmp);
@@ -1880,7 +1859,7 @@ static const struct command_registration jlink_subcommand_handlers[] = {
18801859
.handler = &jlink_handle_target_power_command,
18811860
.mode = COMMAND_EXEC,
18821861
.help = "set the target power supply",
1883-
.usage = "<on|off>"
1862+
.usage = "<0|1|on|off>"
18841863
},
18851864
{
18861865
.name = "freemem",

0 commit comments

Comments
 (0)