[Pdbg] [PATCH 18/29] main: Use new command handling for HTM

Cyril Bur cyrilbur at gmail.com
Fri Feb 9 15:38:46 AEDT 2018


Signed-off-by: Cyril Bur <cyrilbur at gmail.com>
---
 src/htm.c  | 14 +++++++-------
 src/htm.h  | 14 +++++++-------
 src/main.c | 53 +++++++----------------------------------------------
 3 files changed, 21 insertions(+), 60 deletions(-)

diff --git a/src/htm.c b/src/htm.c
index 36e138f..b03aca0 100644
--- a/src/htm.c
+++ b/src/htm.c
@@ -45,7 +45,7 @@ static char *get_htm_dump_filename(void)
 	return filename;
 }
 
-int run_htm_start(void)
+int run_htm_start(int optind, int argc, char *argv[])
 {
 	struct pdbg_target *target;
 	int rc = 0;
@@ -64,7 +64,7 @@ int run_htm_start(void)
 	return rc;
 }
 
-int run_htm_stop(void)
+int run_htm_stop(int optind, int argc, char *argv[])
 {
 	struct pdbg_target *target;
 	int rc = 0;
@@ -83,7 +83,7 @@ int run_htm_stop(void)
 	return rc;
 }
 
-int run_htm_status(void)
+int run_htm_status(int optind, int argc, char *argv[])
 {
 	struct pdbg_target *target;
 	int rc = 0;
@@ -103,7 +103,7 @@ int run_htm_status(void)
 	return rc;
 }
 
-int run_htm_reset(void)
+int run_htm_reset(int optind, int argc, char *argv[])
 {
 	uint64_t old_base = 0, base, size;
 	struct pdbg_target *target;
@@ -131,7 +131,7 @@ int run_htm_reset(void)
 	return rc;
 }
 
-int run_htm_dump(void)
+int run_htm_dump(int optind, int argc, char *argv[])
 {
 	struct pdbg_target *target;
 	char *filename;
@@ -158,7 +158,7 @@ int run_htm_dump(void)
 	return rc;
 }
 
-int run_htm_trace(void)
+int run_htm_trace(int optind, int argc, char *argv[])
 {
 	uint64_t old_base = 0, base, size;
 	struct pdbg_target *target;
@@ -201,7 +201,7 @@ int run_htm_trace(void)
 	return rc;
 }
 
-int run_htm_analyse(void)
+int run_htm_analyse(int optind, int argc, char *argv[])
 {
 	struct pdbg_target *target;
 	char *filename;
diff --git a/src/htm.h b/src/htm.h
index 0190d03..b454acc 100644
--- a/src/htm.h
+++ b/src/htm.h
@@ -18,10 +18,10 @@
 
 #include <target.h>
 
-int run_htm_start(void);
-int run_htm_stop(void);
-int run_htm_status(void);
-int run_htm_reset(void);
-int run_htm_dump(void);
-int run_htm_trace(void);
-int run_htm_analyse(void);
+int run_htm_start(int optind, int argc, char *argv[]);
+int run_htm_stop(int optind, int argc, char *argv[]);
+int run_htm_status(int optind, int argc, char *argv[]);
+int run_htm_reset(int optind, int argc, char *argv[]);
+int run_htm_dump(int optind, int argc, char *argv[]);
+int run_htm_trace(int optind, int argc, char *argv[]);
+int run_htm_analyse(int optind, int argc, char *argv[]);
diff --git a/src/main.c b/src/main.c
index 42aeeba..a38472e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -103,6 +103,13 @@ static struct {
 	{ "stop",    "", "Stop thread", &thread_stop },
 	{ "threadstatus", "", "Print the status of a thread", &thread_status_print },
 	{ "sreset",  "", "Reset", &thread_sreset },
+	{ "htm_start", "", "Start Nest HTM", &run_htm_start },
+	{ "htm_stop", "", "Stop Nest HTM", &run_htm_stop },
+	{ "htm_status", "", "Print the status of HTM", &run_htm_status },
+	{ "htm_reset", "", "Reset the HTM facility", &run_htm_reset },
+	{ "htm_dump", "", "Dump HTM buffer to file", &run_htm_dump },
+	{ "htm_trace", "" , "Configure and start tracing with HTM", &run_htm_trace },
+	{ "htm_analyse", "", "Stop and dump buffer to file", &run_htm_analyse },
 };
 
 static void print_usage(char *pname)
@@ -169,30 +176,6 @@ enum command parse_cmd(char *optarg)
 	} else if (strcmp(optarg, "probe") == 0) {
 		cmd = PROBE;
 		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_start") == 0) {
-		cmd = HTM_START;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_go") == 0) {
-		cmd = HTM_START;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_stop") == 0) {
-		cmd = HTM_STOP;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_status") == 0) {
-		cmd = HTM_STATUS;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_reset") == 0) {
-		cmd = HTM_RESET;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_dump") == 0) {
-		cmd = HTM_DUMP;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_trace") == 0) {
-		cmd = HTM_TRACE;
-		cmd_min_arg_count = 0;
-	} else if (strcmp(optarg, "htm_analyse") == 0) {
-		cmd = HTM_ANALYSE;
-		cmd_min_arg_count = 0;
 	}
 
 	if (cmd_min_arg_count && !cmd_max_arg_count)
@@ -584,28 +567,6 @@ int main(int argc, char *argv[])
 		printf("\nNote that only selected targets will be shown above. If none are shown\n"
 		       "try adding '-a' to select all targets\n");
 		break;
-	case HTM_GO:
-	case HTM_START:
-		rc = run_htm_start();
-		break;
-	case HTM_STOP:
-		rc = run_htm_stop();
-		break;
-	case HTM_STATUS:
-		rc = run_htm_status();
-		break;
-	case HTM_RESET:
-		rc = run_htm_reset();
-		break;
-	case HTM_DUMP:
-		rc = run_htm_dump();
-		break;
-	case HTM_TRACE:
-		rc = run_htm_trace();
-		break;
-	case HTM_ANALYSE:
-		rc = run_htm_analyse();
-		break;
 	default:
 		found = false;
 		break;
-- 
2.16.1



More information about the Pdbg mailing list