110152Satgutier@umich.edu/*****************************************************************************
210152Satgutier@umich.edu *                                McPAT/CACTI
310152Satgutier@umich.edu *                      SOFTWARE LICENSE AGREEMENT
410152Satgutier@umich.edu *            Copyright 2012 Hewlett-Packard Development Company, L.P.
510152Satgutier@umich.edu *                          All Rights Reserved
610152Satgutier@umich.edu *
710152Satgutier@umich.edu * Redistribution and use in source and binary forms, with or without
810152Satgutier@umich.edu * modification, are permitted provided that the following conditions are
910152Satgutier@umich.edu * met: redistributions of source code must retain the above copyright
1010152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer;
1110152Satgutier@umich.edu * redistributions in binary form must reproduce the above copyright
1210152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer in the
1310152Satgutier@umich.edu * documentation and/or other materials provided with the distribution;
1410152Satgutier@umich.edu * neither the name of the copyright holders nor the names of its
1510152Satgutier@umich.edu * contributors may be used to endorse or promote products derived from
1610152Satgutier@umich.edu * this software without specific prior written permission.
1710152Satgutier@umich.edu
1810152Satgutier@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1910152Satgutier@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2010152Satgutier@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2110152Satgutier@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2210152Satgutier@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2310152Satgutier@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2410152Satgutier@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2510152Satgutier@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2610152Satgutier@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2710152Satgutier@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2810152Satgutier@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”
2910152Satgutier@umich.edu *
3010152Satgutier@umich.edu ***************************************************************************/
3110152Satgutier@umich.edu
3210152Satgutier@umich.edu#include <iostream>
3310152Satgutier@umich.edu
3410152Satgutier@umich.edu#include "io.h"
3510152Satgutier@umich.edu
3610152Satgutier@umich.eduusing namespace std;
3710152Satgutier@umich.edu
3810152Satgutier@umich.edu
3910152Satgutier@umich.eduint main(int argc,char *argv[])
4010152Satgutier@umich.edu{
4110152Satgutier@umich.edu
4210152Satgutier@umich.edu  uca_org_t result;
4310152Satgutier@umich.edu  if (argc != 53 && argc != 55)
4410152Satgutier@umich.edu  {
4510152Satgutier@umich.edu    bool infile_specified = false;
4610152Satgutier@umich.edu    string infile_name("");
4710152Satgutier@umich.edu
4810152Satgutier@umich.edu    for (int32_t i = 0; i < argc; i++)
4910152Satgutier@umich.edu    {
5010152Satgutier@umich.edu      if (argv[i] == string("-infile"))
5110152Satgutier@umich.edu      {
5210152Satgutier@umich.edu        infile_specified = true;
5310152Satgutier@umich.edu        i++;
5410152Satgutier@umich.edu        infile_name = argv[i];
5510152Satgutier@umich.edu      }
5610152Satgutier@umich.edu    }
5710152Satgutier@umich.edu
5810152Satgutier@umich.edu    if (infile_specified == false)
5910152Satgutier@umich.edu    {
6010152Satgutier@umich.edu      cerr << " Invalid arguments -- how to use CACTI:" << endl;
6110152Satgutier@umich.edu      cerr << "  1) cacti -infile <input file name>" << endl;
6210152Satgutier@umich.edu      cerr << "  2) cacti arg1 ... arg52 -- please refer to the README file" << endl;
6310152Satgutier@umich.edu      cerr << " No. of arguments input - " << argc << endl;
6410152Satgutier@umich.edu      exit(1);
6510152Satgutier@umich.edu    }
6610152Satgutier@umich.edu    else
6710152Satgutier@umich.edu    {
6810152Satgutier@umich.edu      result = cacti_interface(infile_name);
6910152Satgutier@umich.edu    }
7010152Satgutier@umich.edu  }
7110152Satgutier@umich.edu  else if (argc == 53)
7210152Satgutier@umich.edu  {
7310152Satgutier@umich.edu          result = cacti_interface(atoi(argv[ 1]),
7410152Satgutier@umich.edu                          atoi(argv[ 2]),
7510152Satgutier@umich.edu                          atoi(argv[ 3]),
7610152Satgutier@umich.edu                          atoi(argv[ 4]),
7710152Satgutier@umich.edu                          atoi(argv[ 5]),
7810152Satgutier@umich.edu                          atoi(argv[ 6]),
7910152Satgutier@umich.edu                          atoi(argv[ 7]),
8010152Satgutier@umich.edu                          atoi(argv[ 8]),
8110152Satgutier@umich.edu                          atoi(argv[ 9]),
8210152Satgutier@umich.edu                          atof(argv[10]),
8310152Satgutier@umich.edu                          atoi(argv[11]),
8410152Satgutier@umich.edu                          atoi(argv[12]),
8510152Satgutier@umich.edu                          atoi(argv[13]),
8610152Satgutier@umich.edu                          atoi(argv[14]),
8710152Satgutier@umich.edu                          atoi(argv[15]),
8810152Satgutier@umich.edu                          atoi(argv[16]),
8910152Satgutier@umich.edu                          atoi(argv[17]),
9010152Satgutier@umich.edu                          atoi(argv[18]),
9110152Satgutier@umich.edu                          atoi(argv[19]),
9210152Satgutier@umich.edu                          atoi(argv[20]),
9310152Satgutier@umich.edu                          atoi(argv[21]),
9410152Satgutier@umich.edu                          atoi(argv[22]),
9510152Satgutier@umich.edu                          atoi(argv[23]),
9610152Satgutier@umich.edu                          atoi(argv[24]),
9710152Satgutier@umich.edu                          atoi(argv[25]),
9810152Satgutier@umich.edu                          atoi(argv[26]),
9910152Satgutier@umich.edu                          atoi(argv[27]),
10010152Satgutier@umich.edu                          atoi(argv[28]),
10110152Satgutier@umich.edu                          atoi(argv[29]),
10210152Satgutier@umich.edu                          atoi(argv[30]),
10310152Satgutier@umich.edu                          atoi(argv[31]),
10410152Satgutier@umich.edu                          atoi(argv[32]),
10510152Satgutier@umich.edu                          atoi(argv[33]),
10610152Satgutier@umich.edu                          atoi(argv[34]),
10710152Satgutier@umich.edu                          atoi(argv[35]),
10810152Satgutier@umich.edu                          atoi(argv[36]),
10910152Satgutier@umich.edu                          atoi(argv[37]),
11010152Satgutier@umich.edu                          atoi(argv[38]),
11110152Satgutier@umich.edu                          atoi(argv[39]),
11210152Satgutier@umich.edu                          atoi(argv[40]),
11310152Satgutier@umich.edu                          atoi(argv[41]),
11410152Satgutier@umich.edu                          atoi(argv[42]),
11510152Satgutier@umich.edu                          atoi(argv[43]),
11610152Satgutier@umich.edu                          atoi(argv[44]),
11710152Satgutier@umich.edu                          atoi(argv[45]),
11810152Satgutier@umich.edu                          atoi(argv[46]),
11910152Satgutier@umich.edu                          atoi(argv[47]),
12010152Satgutier@umich.edu                          atoi(argv[48]),
12110152Satgutier@umich.edu                          atoi(argv[49]),
12210152Satgutier@umich.edu                          atoi(argv[50]),
12310152Satgutier@umich.edu                          atoi(argv[51]),
12410152Satgutier@umich.edu                          atoi(argv[52]));
12510152Satgutier@umich.edu  }
12610152Satgutier@umich.edu  else
12710152Satgutier@umich.edu  {
12810152Satgutier@umich.edu          result = cacti_interface(atoi(argv[ 1]),
12910152Satgutier@umich.edu                          atoi(argv[ 2]),
13010152Satgutier@umich.edu                          atoi(argv[ 3]),
13110152Satgutier@umich.edu                          atoi(argv[ 4]),
13210152Satgutier@umich.edu                          atoi(argv[ 5]),
13310152Satgutier@umich.edu                          atoi(argv[ 6]),
13410152Satgutier@umich.edu                          atoi(argv[ 7]),
13510152Satgutier@umich.edu                          atoi(argv[ 8]),
13610152Satgutier@umich.edu                          atof(argv[ 9]),
13710152Satgutier@umich.edu                          atoi(argv[10]),
13810152Satgutier@umich.edu                          atoi(argv[11]),
13910152Satgutier@umich.edu                          atoi(argv[12]),
14010152Satgutier@umich.edu                          atoi(argv[13]),
14110152Satgutier@umich.edu                          atoi(argv[14]),
14210152Satgutier@umich.edu                          atoi(argv[15]),
14310152Satgutier@umich.edu                          atoi(argv[16]),
14410152Satgutier@umich.edu                          atoi(argv[17]),
14510152Satgutier@umich.edu                          atoi(argv[18]),
14610152Satgutier@umich.edu                          atoi(argv[19]),
14710152Satgutier@umich.edu                          atoi(argv[20]),
14810152Satgutier@umich.edu                          atoi(argv[21]),
14910152Satgutier@umich.edu                          atoi(argv[22]),
15010152Satgutier@umich.edu                          atoi(argv[23]),
15110152Satgutier@umich.edu                          atoi(argv[24]),
15210152Satgutier@umich.edu                          atoi(argv[25]),
15310152Satgutier@umich.edu                          atoi(argv[26]),
15410152Satgutier@umich.edu                          atoi(argv[27]),
15510152Satgutier@umich.edu                          atoi(argv[28]),
15610152Satgutier@umich.edu                          atoi(argv[29]),
15710152Satgutier@umich.edu                          atoi(argv[30]),
15810152Satgutier@umich.edu                          atoi(argv[31]),
15910152Satgutier@umich.edu                          atoi(argv[32]),
16010152Satgutier@umich.edu                          atoi(argv[33]),
16110152Satgutier@umich.edu                          atoi(argv[34]),
16210152Satgutier@umich.edu                          atoi(argv[35]),
16310152Satgutier@umich.edu                          atoi(argv[36]),
16410152Satgutier@umich.edu                          atoi(argv[37]),
16510152Satgutier@umich.edu                          atoi(argv[38]),
16610152Satgutier@umich.edu                          atoi(argv[39]),
16710152Satgutier@umich.edu                          atoi(argv[40]),
16810152Satgutier@umich.edu                          atoi(argv[41]),
16910152Satgutier@umich.edu                          atoi(argv[42]),
17010152Satgutier@umich.edu                          atoi(argv[43]),
17110152Satgutier@umich.edu                          atoi(argv[44]),
17210152Satgutier@umich.edu                          atoi(argv[45]),
17310152Satgutier@umich.edu                          atoi(argv[46]),
17410152Satgutier@umich.edu                          atoi(argv[47]),
17510152Satgutier@umich.edu                          atoi(argv[48]),
17610152Satgutier@umich.edu                          atoi(argv[49]),
17710152Satgutier@umich.edu                          atoi(argv[50]),
17810152Satgutier@umich.edu                          atoi(argv[51]),
17910152Satgutier@umich.edu                          atoi(argv[52]),
18010152Satgutier@umich.edu                          atoi(argv[53]),
18110152Satgutier@umich.edu                          atoi(argv[54]));
18210152Satgutier@umich.edu  }
18310152Satgutier@umich.edu
18410152Satgutier@umich.edu  result.cleanup();
18510152Satgutier@umich.edu//  delete result.data_array2;
18610152Satgutier@umich.edu//  if (result.tag_array2!=NULL)
18710152Satgutier@umich.edu//	  delete result.tag_array2;
18810152Satgutier@umich.edu
18910152Satgutier@umich.edu  return 0;
19010152Satgutier@umich.edu}
19110152Satgutier@umich.edu
192