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);
 }