m5.c revision 275:df845558a024
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
10char *progname;
11
12void
13usage()
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
25int
26main(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}
63