m5.c revision 275
1275Sbinkertn@umich.edu#include <c_asm.h> 2275Sbinkertn@umich.edu 3275Sbinkertn@umich.edu#include <libgen.h> 4275Sbinkertn@umich.edu#include <stdio.h> 5275Sbinkertn@umich.edu#include <stdlib.h> 6275Sbinkertn@umich.edu#include <string.h> 7275Sbinkertn@umich.edu 8275Sbinkertn@umich.edu#include "m5op.h" 9275Sbinkertn@umich.edu 10275Sbinkertn@umich.educhar *progname; 11275Sbinkertn@umich.edu 12275Sbinkertn@umich.eduvoid 13275Sbinkertn@umich.eduusage() 14275Sbinkertn@umich.edu{ 15275Sbinkertn@umich.edu char *name = basename(progname); 16275Sbinkertn@umich.edu printf("usage: %s ivlb <interval>\n" 17275Sbinkertn@umich.edu " %s ivle <interval>\n" 18275Sbinkertn@umich.edu " %s initparam\n" 19275Sbinkertn@umich.edu " %s sw99param\n" 20275Sbinkertn@umich.edu " %s resetstats\n" 21275Sbinkertn@umich.edu " %s exit\n", name, name, name, name, name, name); 22275Sbinkertn@umich.edu exit(1); 23275Sbinkertn@umich.edu} 24275Sbinkertn@umich.edu 25275Sbinkertn@umich.eduint 26275Sbinkertn@umich.edumain(int argc, char *argv[]) 27275Sbinkertn@umich.edu{ 28275Sbinkertn@umich.edu int start; 29275Sbinkertn@umich.edu int interval; 30275Sbinkertn@umich.edu unsigned long long param; 31275Sbinkertn@umich.edu 32275Sbinkertn@umich.edu progname = argv[0]; 33275Sbinkertn@umich.edu if (argc < 2) 34275Sbinkertn@umich.edu usage(); 35275Sbinkertn@umich.edu 36275Sbinkertn@umich.edu if (strncmp(argv[1], "ivlb", 5) == 0) { 37275Sbinkertn@umich.edu if (argc != 3) usage(); 38275Sbinkertn@umich.edu ivlb((unsigned long)atoi(argv[2])); 39275Sbinkertn@umich.edu } else if (strncmp(argv[1], "ivle", 5) == 0) { 40275Sbinkertn@umich.edu if (argc != 3) usage(); 41275Sbinkertn@umich.edu ivle((unsigned long)atoi(argv[2])); 42275Sbinkertn@umich.edu } else if (strncmp(argv[1], "exit", 5) == 0) { 43275Sbinkertn@umich.edu if (argc != 2) usage(); 44275Sbinkertn@umich.edu m5exit(); 45275Sbinkertn@umich.edu } else if (strncmp(argv[1], "initparam", 10) == 0) { 46275Sbinkertn@umich.edu if (argc != 2) usage(); 47275Sbinkertn@umich.edu printf("%d", initparam()); 48275Sbinkertn@umich.edu } else if (strncmp(argv[1], "sw99param", 10) == 0) { 49275Sbinkertn@umich.edu if (argc != 2) usage(); 50275Sbinkertn@umich.edu 51275Sbinkertn@umich.edu param = initparam(); 52275Sbinkertn@umich.edu // run-time, rampup-time, rampdown-time, warmup-time, connections 53275Sbinkertn@umich.edu printf("%d %d %d %d %d", (param >> 48) & 0xfff, 54275Sbinkertn@umich.edu (param >> 36) & 0xfff, (param >> 24) & 0xfff, 55275Sbinkertn@umich.edu (param >> 12) & 0xfff, (param >> 0) & 0xfff); 56275Sbinkertn@umich.edu } else if (strncmp(argv[1], "resetstats", 11) == 0) { 57275Sbinkertn@umich.edu if (argc != 2) usage(); 58275Sbinkertn@umich.edu resetstats(); 59275Sbinkertn@umich.edu } 60275Sbinkertn@umich.edu 61275Sbinkertn@umich.edu return 0; 62275Sbinkertn@umich.edu} 63