iocontrollers.h revision 10152:52c552138ba1
1803SN/A/***************************************************************************** 21363SN/A * McPAT 3803SN/A * SOFTWARE LICENSE AGREEMENT 4803SN/A * Copyright 2012 Hewlett-Packard Development Company, L.P. 5803SN/A * All Rights Reserved 6803SN/A * 7803SN/A * Redistribution and use in source and binary forms, with or without 8803SN/A * modification, are permitted provided that the following conditions are 9803SN/A * met: redistributions of source code must retain the above copyright 10803SN/A * notice, this list of conditions and the following disclaimer; 11803SN/A * redistributions in binary form must reproduce the above copyright 12803SN/A * notice, this list of conditions and the following disclaimer in the 13803SN/A * documentation and/or other materials provided with the distribution; 14803SN/A * neither the name of the copyright holders nor the names of its 15803SN/A * contributors may be used to endorse or promote products derived from 16803SN/A * this software without specific prior written permission. 17803SN/A 18803SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19803SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20803SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21803SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22803SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23803SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24803SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25803SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26803SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 272665SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 282665SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” 292665SN/A * 302665SN/A ***************************************************************************/ 31803SN/A#ifndef IOCONTROLLERS_H_ 32768SN/A#define IOCONTROLLERS_H_ 331730SN/A 34773SN/A 35768SN/A#endif /* IOCONTROLLERS_H_ */ 36768SN/A 37773SN/A#include "XML_Parse.h" 38773SN/A#include "parameter.h" 39768SN/A//#include "io.h" 40768SN/A#include "array.h" 41768SN/A//#include "Undifferentiated_Core_Area.h" 42768SN/A#include <vector> 434762Snate@binkert.org 44768SN/A#include "basic_components.h" 452542SN/A 463540Sgblack@eecs.umich.educlass NIUController : public Component { 473540Sgblack@eecs.umich.edu public: 483540Sgblack@eecs.umich.edu ParseXML *XML; 493540Sgblack@eecs.umich.edu InputParameter interface_ip; 503348SN/A NIUParam niup; 513348SN/A powerDef power_t; 522542SN/A uca_org_t local_result; 532542SN/A NIUController(ParseXML *XML_interface,InputParameter* interface_ip_); 54768SN/A void set_niu_param(); 55768SN/A void computeEnergy(bool is_tdp=true); 562107SN/A void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true); 572107SN/A ~NIUController(){}; 58773SN/A}; 595606Snate@binkert.org 605606Snate@binkert.orgclass PCIeController : public Component { 615606Snate@binkert.org public: 621817SN/A ParseXML *XML; 63772SN/A InputParameter interface_ip; 64772SN/A PCIeParam pciep; 654762Snate@binkert.org powerDef power_t; 665606Snate@binkert.org uca_org_t local_result; 675606Snate@binkert.org PCIeController(ParseXML *XML_interface,InputParameter* interface_ip_); 68768SN/A void set_pcie_param(); 693846Shsul@eecs.umich.edu void computeEnergy(bool is_tdp=true); 70909SN/A void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true); 71803SN/A ~PCIeController(){}; 72803SN/A}; 73803SN/A 74771SN/Aclass FlashController : public Component { 75777SN/A public: 76777SN/A ParseXML *XML; 77773SN/A InputParameter interface_ip; 78773SN/A MCParam fcp; 791634SN/A powerDef power_t; 801634SN/A uca_org_t local_result; 811634SN/A FlashController(ParseXML *XML_interface,InputParameter* interface_ip_); 822539SN/A void set_fc_param(); 831634SN/A void computeEnergy(bool is_tdp=true); 841634SN/A void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true); 852542SN/A ~FlashController(){}; 863349SN/A}; 87768SN/A 882641SN/A