AbstractEntry.hh revision 7055
19157Sandreas.hansson@arm.com/* 29793Sakash.bagdia@arm.com * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 310000Sclt67@cornell.edu * All rights reserved. 49157Sandreas.hansson@arm.com * 59157Sandreas.hansson@arm.com * Redistribution and use in source and binary forms, with or without 69157Sandreas.hansson@arm.com * modification, are permitted provided that the following conditions are 79157Sandreas.hansson@arm.com * met: redistributions of source code must retain the above copyright 89157Sandreas.hansson@arm.com * notice, this list of conditions and the following disclaimer; 99157Sandreas.hansson@arm.com * redistributions in binary form must reproduce the above copyright 109157Sandreas.hansson@arm.com * notice, this list of conditions and the following disclaimer in the 119157Sandreas.hansson@arm.com * documentation and/or other materials provided with the distribution; 129157Sandreas.hansson@arm.com * neither the name of the copyright holders nor the names of its 139157Sandreas.hansson@arm.com * contributors may be used to endorse or promote products derived from 149157Sandreas.hansson@arm.com * this software without specific prior written permission. 159157Sandreas.hansson@arm.com * 169157Sandreas.hansson@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 179157Sandreas.hansson@arm.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 189157Sandreas.hansson@arm.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 199157Sandreas.hansson@arm.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 209157Sandreas.hansson@arm.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 219157Sandreas.hansson@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 229157Sandreas.hansson@arm.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 239157Sandreas.hansson@arm.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 249157Sandreas.hansson@arm.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 259157Sandreas.hansson@arm.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 269157Sandreas.hansson@arm.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 279157Sandreas.hansson@arm.com */ 289157Sandreas.hansson@arm.com 299157Sandreas.hansson@arm.com#ifndef __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__ 309157Sandreas.hansson@arm.com#define __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__ 319157Sandreas.hansson@arm.com 329157Sandreas.hansson@arm.com#include <iostream> 339157Sandreas.hansson@arm.com 349157Sandreas.hansson@arm.com#include "mem/ruby/common/Address.hh" 359157Sandreas.hansson@arm.com#include "mem/ruby/common/Global.hh" 369157Sandreas.hansson@arm.com#include "mem/protocol/AccessPermission.hh" 379157Sandreas.hansson@arm.com 389157Sandreas.hansson@arm.comclass DataBlock; 3910000Sclt67@cornell.edu 409157Sandreas.hansson@arm.comclass AbstractEntry 419157Sandreas.hansson@arm.com{ 429157Sandreas.hansson@arm.com public: 439157Sandreas.hansson@arm.com AbstractEntry(); 449157Sandreas.hansson@arm.com virtual ~AbstractEntry() = 0; 459157Sandreas.hansson@arm.com 469157Sandreas.hansson@arm.com // The methods below are those called by ruby runtime, add when it 479157Sandreas.hansson@arm.com // is absolutely necessary and should all be virtual function. 489157Sandreas.hansson@arm.com virtual DataBlock& getDataBlk() = 0; 499157Sandreas.hansson@arm.com 509157Sandreas.hansson@arm.com virtual void print(std::ostream& out) const = 0; 519418Sandreas.hansson@arm.com}; 529157Sandreas.hansson@arm.com 539356Snilay@cs.wisc.eduinline std::ostream& 549793Sakash.bagdia@arm.comoperator<<(std::ostream& out, const AbstractEntry& obj) 559157Sandreas.hansson@arm.com{ 569157Sandreas.hansson@arm.com obj.print(out); 579157Sandreas.hansson@arm.com out << std::flush; 589157Sandreas.hansson@arm.com return out; 599157Sandreas.hansson@arm.com} 609157Sandreas.hansson@arm.com 619157Sandreas.hansson@arm.com#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__ 629157Sandreas.hansson@arm.com 639157Sandreas.hansson@arm.com