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