FreeCalypso > hg > freecalypso-tools
diff rvinterf/tmsh/tmcore.c @ 69:2159f260ed13
fc-tmsh: all commands internally return values
in preparation for adding one-shot mode of operation
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 26 Oct 2016 23:17:03 +0000 |
parents | e7502631a0f9 |
children | 4c7f3778dc24 |
line wrap: on
line diff
--- a/rvinterf/tmsh/tmcore.c Wed Oct 26 22:56:29 2016 +0000 +++ b/rvinterf/tmsh/tmcore.c Wed Oct 26 23:17:03 2016 +0000 @@ -12,6 +12,7 @@ #include "limits.h" #include "localtypes.h" #include "etm.h" +#include "exitcodes.h" extern u_char rvi_msg[]; extern int rvi_msg_len; @@ -194,7 +195,6 @@ } } -void cmd_r8(argc, argv) char **argv; { @@ -209,7 +209,7 @@ count = 1; if (count < 1 || count > 253) { printf("error: count argument outside valid range\n"); - return; + return(ERROR_USAGE); } cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_MEM; @@ -220,9 +220,9 @@ cmdpkt[7] = addr >> 16; cmdpkt[8] = addr >> 24; send_etm_cmd(cmdpkt, 8); + return(0); } -void cmd_r16(argc, argv) char **argv; { @@ -237,11 +237,11 @@ count = 1; if (addr & 1) { printf("error: address not aligned\n"); - return; + return(ERROR_USAGE); } if (count < 1 || count > 126) { printf("error: count argument outside valid range\n"); - return; + return(ERROR_USAGE); } cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_MEM; @@ -252,9 +252,9 @@ cmdpkt[7] = addr >> 16; cmdpkt[8] = addr >> 24; send_etm_cmd(cmdpkt, 8); + return(0); } -void cmd_r32(argc, argv) char **argv; { @@ -269,11 +269,11 @@ count = 1; if (addr & 3) { printf("error: address not aligned\n"); - return; + return(ERROR_USAGE); } if (count < 1 || count > 63) { printf("error: count argument outside valid range\n"); - return; + return(ERROR_USAGE); } cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_MEM; @@ -284,9 +284,9 @@ cmdpkt[7] = addr >> 16; cmdpkt[8] = addr >> 24; send_etm_cmd(cmdpkt, 8); + return(0); } -void cmd_w8(argc, argv) char **argv; { @@ -310,9 +310,9 @@ cmdpkt[di++] = v; } send_etm_cmd(cmdpkt, di - 1); + return(0); } -void cmd_w16(argc, argv) char **argv; { @@ -324,7 +324,7 @@ addr = strtoul(argv[1], 0, 16); if (addr & 1) { printf("error: address not aligned\n"); - return; + return(ERROR_USAGE); } cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_MEM; @@ -341,9 +341,9 @@ cmdpkt[di++] = v >> 8; } send_etm_cmd(cmdpkt, di - 1); + return(0); } -void cmd_w32(argc, argv) char **argv; { @@ -355,7 +355,7 @@ addr = strtoul(argv[1], 0, 16); if (addr & 3) { printf("error: address not aligned\n"); - return; + return(ERROR_USAGE); } cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_MEM; @@ -374,9 +374,9 @@ cmdpkt[di++] = v >> 24; } send_etm_cmd(cmdpkt, di - 1); + return(0); } -void cmd_dieid(argc, argv) char **argv; { @@ -385,9 +385,9 @@ cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_DIEID; send_etm_cmd(cmdpkt, 2); + return(0); } -void cmd_ping(argc, argv) char **argv; { @@ -398,7 +398,7 @@ delay = strtoul(argv[1], 0, 0); if (delay > 65535) { printf("error: ping delay argument too big\n"); - return; + return(ERROR_USAGE); } } else delay = 0; @@ -406,7 +406,7 @@ size = strtoul(argv[2], 0, 0); if (size > 240) { printf("error: ping size argument too big\n"); - return; + return(ERROR_USAGE); } } else size = 1; @@ -417,9 +417,9 @@ cmdpkt[5] = size; cmdpkt[6] = size >> 8; send_etm_cmd(cmdpkt, 6); + return(0); } -void cmd_tgtreset(argc, argv) char **argv; { @@ -428,9 +428,9 @@ cmdpkt[1] = ETM_CORE; cmdpkt[2] = TMCORE_OPC_RESET; send_etm_cmd(cmdpkt, 2); + return(0); } -void cmd_version(argc, argv) char **argv; { @@ -445,4 +445,5 @@ cmdpkt[5] = arg >> 16; cmdpkt[6] = arg >> 24; send_etm_cmd(cmdpkt, 6); + return(0); }