Commit a command for use inside a simulated system for communicating
[gem5.git] / util / m5 / m5.c
1 #include <c_asm.h>
2
3 #include <libgen.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7
8 #include "m5op.h"
9
10 char *progname;
11
12 void
13 usage()
14 {
15 char *name = basename(progname);
16 printf("usage: %s ivlb <interval>\n"
17 " %s ivle <interval>\n"
18 " %s initparam\n"
19 " %s sw99param\n"
20 " %s resetstats\n"
21 " %s exit\n", name, name, name, name, name, name);
22 exit(1);
23 }
24
25 int
26 main(int argc, char *argv[])
27 {
28 int start;
29 int interval;
30 unsigned long long param;
31
32 progname = argv[0];
33 if (argc < 2)
34 usage();
35
36 if (strncmp(argv[1], "ivlb", 5) == 0) {
37 if (argc != 3) usage();
38 ivlb((unsigned long)atoi(argv[2]));
39 } else if (strncmp(argv[1], "ivle", 5) == 0) {
40 if (argc != 3) usage();
41 ivle((unsigned long)atoi(argv[2]));
42 } else if (strncmp(argv[1], "exit", 5) == 0) {
43 if (argc != 2) usage();
44 m5exit();
45 } else if (strncmp(argv[1], "initparam", 10) == 0) {
46 if (argc != 2) usage();
47 printf("%d", initparam());
48 } else if (strncmp(argv[1], "sw99param", 10) == 0) {
49 if (argc != 2) usage();
50
51 param = initparam();
52 // run-time, rampup-time, rampdown-time, warmup-time, connections
53 printf("%d %d %d %d %d", (param >> 48) & 0xfff,
54 (param >> 36) & 0xfff, (param >> 24) & 0xfff,
55 (param >> 12) & 0xfff, (param >> 0) & 0xfff);
56 } else if (strncmp(argv[1], "resetstats", 11) == 0) {
57 if (argc != 2) usage();
58 resetstats();
59 }
60
61 return 0;
62 }