mem_master.hh revision 12680
112680Sgiacomo.travaglini@arm.com/* 212680Sgiacomo.travaglini@arm.com * Copyright (c) 2018 ARM Limited 312680Sgiacomo.travaglini@arm.com * All rights reserved 412680Sgiacomo.travaglini@arm.com * 512680Sgiacomo.travaglini@arm.com * The license below extends only to copyright in the software and shall 612680Sgiacomo.travaglini@arm.com * not be construed as granting a license to any other intellectual 712680Sgiacomo.travaglini@arm.com * property including but not limited to intellectual property relating 812680Sgiacomo.travaglini@arm.com * to a hardware implementation of the functionality of the software 912680Sgiacomo.travaglini@arm.com * licensed hereunder. You may use the software subject to the license 1012680Sgiacomo.travaglini@arm.com * terms below provided that you ensure that this notice is replicated 1112680Sgiacomo.travaglini@arm.com * unmodified and in its entirety in all distributions of the software, 1212680Sgiacomo.travaglini@arm.com * modified or unmodified, in source code or in binary form. 1312680Sgiacomo.travaglini@arm.com * 1412680Sgiacomo.travaglini@arm.com * Redistribution and use in source and binary forms, with or without 1512680Sgiacomo.travaglini@arm.com * modification, are permitted provided that the following conditions are 1612680Sgiacomo.travaglini@arm.com * met: redistributions of source code must retain the above copyright 1712680Sgiacomo.travaglini@arm.com * notice, this list of conditions and the following disclaimer; 1812680Sgiacomo.travaglini@arm.com * redistributions in binary form must reproduce the above copyright 1912680Sgiacomo.travaglini@arm.com * notice, this list of conditions and the following disclaimer in the 2012680Sgiacomo.travaglini@arm.com * documentation and/or other materials provided with the distribution; 2112680Sgiacomo.travaglini@arm.com * neither the name of the copyright holders nor the names of its 2212680Sgiacomo.travaglini@arm.com * contributors may be used to endorse or promote products derived from 2312680Sgiacomo.travaglini@arm.com * this software without specific prior written permission. 2412680Sgiacomo.travaglini@arm.com * 2512680Sgiacomo.travaglini@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2612680Sgiacomo.travaglini@arm.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2712680Sgiacomo.travaglini@arm.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2812680Sgiacomo.travaglini@arm.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2912680Sgiacomo.travaglini@arm.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 3012680Sgiacomo.travaglini@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3112680Sgiacomo.travaglini@arm.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3212680Sgiacomo.travaglini@arm.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3312680Sgiacomo.travaglini@arm.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3412680Sgiacomo.travaglini@arm.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3512680Sgiacomo.travaglini@arm.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3612680Sgiacomo.travaglini@arm.com * 3712680Sgiacomo.travaglini@arm.com * Authors: Giacomo Travaglini 3812680Sgiacomo.travaglini@arm.com */ 3912680Sgiacomo.travaglini@arm.com 4012680Sgiacomo.travaglini@arm.com/** 4112680Sgiacomo.travaglini@arm.com * @file 4212680Sgiacomo.travaglini@arm.com * MasterInfo declaration. 4312680Sgiacomo.travaglini@arm.com */ 4412680Sgiacomo.travaglini@arm.com 4512680Sgiacomo.travaglini@arm.com#ifndef __MEM_MEM_MASTER_HH__ 4612680Sgiacomo.travaglini@arm.com#define __MEM_MEM_MASTER_HH__ 4712680Sgiacomo.travaglini@arm.com 4812680Sgiacomo.travaglini@arm.com#include "mem/request.hh" 4912680Sgiacomo.travaglini@arm.com#include "sim/sim_object.hh" 5012680Sgiacomo.travaglini@arm.com 5112680Sgiacomo.travaglini@arm.com/** 5212680Sgiacomo.travaglini@arm.com * The MasterInfo class contains data about a specific master. 5312680Sgiacomo.travaglini@arm.com */ 5412680Sgiacomo.travaglini@arm.comstruct MasterInfo 5512680Sgiacomo.travaglini@arm.com{ 5612680Sgiacomo.travaglini@arm.com MasterInfo(const SimObject* _obj, 5712680Sgiacomo.travaglini@arm.com std::string master_name, 5812680Sgiacomo.travaglini@arm.com MasterID master_id) 5912680Sgiacomo.travaglini@arm.com : obj(_obj), masterName(master_name), masterId(master_id) 6012680Sgiacomo.travaglini@arm.com {} 6112680Sgiacomo.travaglini@arm.com 6212680Sgiacomo.travaglini@arm.com /** SimObject related to the Master */ 6312680Sgiacomo.travaglini@arm.com const SimObject* obj; 6412680Sgiacomo.travaglini@arm.com 6512680Sgiacomo.travaglini@arm.com /** Master Name */ 6612680Sgiacomo.travaglini@arm.com std::string masterName; 6712680Sgiacomo.travaglini@arm.com 6812680Sgiacomo.travaglini@arm.com /** Master ID */ 6912680Sgiacomo.travaglini@arm.com MasterID masterId; 7012680Sgiacomo.travaglini@arm.com}; 7112680Sgiacomo.travaglini@arm.com 7212680Sgiacomo.travaglini@arm.com#endif // __MEM_MEM_MASTER_HH__ 73