RubyPortProxy.hh revision 8706
19363Snilay@cs.wisc.edu/* 29363Snilay@cs.wisc.edu * Copyright (c) 2011 ARM Limited 39363Snilay@cs.wisc.edu * All rights reserved 49363Snilay@cs.wisc.edu * 59363Snilay@cs.wisc.edu * The license below extends only to copyright in the software and shall 69363Snilay@cs.wisc.edu * not be construed as granting a license to any other intellectual 79363Snilay@cs.wisc.edu * property including but not limited to intellectual property relating 89363Snilay@cs.wisc.edu * to a hardware implementation of the functionality of the software 99363Snilay@cs.wisc.edu * licensed hereunder. You may use the software subject to the license 109363Snilay@cs.wisc.edu * terms below provided that you ensure that this notice is replicated 119363Snilay@cs.wisc.edu * unmodified and in its entirety in all distributions of the software, 129363Snilay@cs.wisc.edu * modified or unmodified, in source code or in binary form. 139363Snilay@cs.wisc.edu * 149363Snilay@cs.wisc.edu * Redistribution and use in source and binary forms, with or without 159363Snilay@cs.wisc.edu * modification, are permitted provided that the following conditions are 169363Snilay@cs.wisc.edu * met: redistributions of source code must retain the above copyright 179363Snilay@cs.wisc.edu * notice, this list of conditions and the following disclaimer; 189363Snilay@cs.wisc.edu * redistributions in binary form must reproduce the above copyright 199363Snilay@cs.wisc.edu * notice, this list of conditions and the following disclaimer in the 209363Snilay@cs.wisc.edu * documentation and/or other materials provided with the distribution; 219363Snilay@cs.wisc.edu * neither the name of the copyright holders nor the names of its 229363Snilay@cs.wisc.edu * contributors may be used to endorse or promote products derived from 239363Snilay@cs.wisc.edu * this software without specific prior written permission. 249363Snilay@cs.wisc.edu * 259363Snilay@cs.wisc.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 269363Snilay@cs.wisc.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 279363Snilay@cs.wisc.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 289363Snilay@cs.wisc.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 299363Snilay@cs.wisc.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 309363Snilay@cs.wisc.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 319363Snilay@cs.wisc.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3211108Sdavid.hashe@amd.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 339363Snilay@cs.wisc.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 349363Snilay@cs.wisc.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 359363Snilay@cs.wisc.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 369363Snilay@cs.wisc.edu * 379363Snilay@cs.wisc.edu * Authors: Andreas Hansson 389363Snilay@cs.wisc.edu */ 399363Snilay@cs.wisc.edu 409363Snilay@cs.wisc.edu/** 419363Snilay@cs.wisc.edu * @file 429363Snilay@cs.wisc.edu * RobyPortProxy for connecting system port to Ruby 439363Snilay@cs.wisc.edu * 449363Snilay@cs.wisc.edu * A trivial wrapper that allows the system port to connect to Ruby 4511025Snilay@cs.wisc.edu * and use nothing but functional accesses. 4611025Snilay@cs.wisc.edu */ 4711025Snilay@cs.wisc.edu 4810466Sandreas.hansson@arm.com#ifndef __MEM_RUBY_SYSTEM_RUBYPORTPROXY_HH__ 4910466Sandreas.hansson@arm.com#define __MEM_RUBY_SYSTEM_RUBYPORTPROXY_HH__ 509363Snilay@cs.wisc.edu 519363Snilay@cs.wisc.edu#include "mem/ruby/system/RubyPort.hh" 529363Snilay@cs.wisc.edu#include "params/RubyPortProxy.hh" 539363Snilay@cs.wisc.edu 549363Snilay@cs.wisc.educlass RubyPortProxy : public RubyPort 559363Snilay@cs.wisc.edu{ 569363Snilay@cs.wisc.edu 579363Snilay@cs.wisc.edu public: 589363Snilay@cs.wisc.edu 599363Snilay@cs.wisc.edu /** 609363Snilay@cs.wisc.edu * Create a new RubyPortProxy. 619363Snilay@cs.wisc.edu * 629363Snilay@cs.wisc.edu * @param p Parameters inherited from the RubyPort 639363Snilay@cs.wisc.edu */ 649363Snilay@cs.wisc.edu RubyPortProxy(const RubyPortProxyParams* p); 659363Snilay@cs.wisc.edu 669363Snilay@cs.wisc.edu /** 679363Snilay@cs.wisc.edu * Destruct a RubyPortProxy. 689363Snilay@cs.wisc.edu */ 699363Snilay@cs.wisc.edu virtual ~RubyPortProxy(); 709363Snilay@cs.wisc.edu 719363Snilay@cs.wisc.edu /** 729363Snilay@cs.wisc.edu * Initialise a RubyPortProxy by doing nothing and avoid 739363Snilay@cs.wisc.edu * involving the super class. 749363Snilay@cs.wisc.edu */ 759363Snilay@cs.wisc.edu void init(); 769363Snilay@cs.wisc.edu 779363Snilay@cs.wisc.edu /** 789363Snilay@cs.wisc.edu * Pure virtual member in the super class that we are forced to 799363Snilay@cs.wisc.edu * implement even if it is never used (since there are only 809363Snilay@cs.wisc.edu * functional accesses). 819363Snilay@cs.wisc.edu * 829363Snilay@cs.wisc.edu * @param pkt The packet to serve to Ruby 839363Snilay@cs.wisc.edu * @returns always a NULL status 849363Snilay@cs.wisc.edu */ 859363Snilay@cs.wisc.edu RequestStatus makeRequest(PacketPtr pkt); 869363Snilay@cs.wisc.edu 879363Snilay@cs.wisc.edu /** 889363Snilay@cs.wisc.edu * Pure virtual member in the super class that we are forced to 8911523Sdavid.guillen@arm.com * implement even if it is never used (since there are only 9011523Sdavid.guillen@arm.com * functional accesses). 919363Snilay@cs.wisc.edu * 929363Snilay@cs.wisc.edu * @returns always 0 939363Snilay@cs.wisc.edu */ 949363Snilay@cs.wisc.edu int outstandingCount() const { return 0; } 959363Snilay@cs.wisc.edu 969363Snilay@cs.wisc.edu /** 979363Snilay@cs.wisc.edu * Pure virtual member in the super class that we are forced to 989363Snilay@cs.wisc.edu * implement even if it is never used (since there are only 999363Snilay@cs.wisc.edu * functional accesses). 1009363Snilay@cs.wisc.edu * 1019363Snilay@cs.wisc.edu * @returns always false 1029363Snilay@cs.wisc.edu */ 1039363Snilay@cs.wisc.edu bool isDeadlockEventScheduled() const { return false; } 1049363Snilay@cs.wisc.edu 1059363Snilay@cs.wisc.edu /** 1069363Snilay@cs.wisc.edu * Pure virtual member in the super class that we are forced to 1079363Snilay@cs.wisc.edu * implement even if it is never used (since there are only 1089363Snilay@cs.wisc.edu * functional accesses). 1099363Snilay@cs.wisc.edu */ 1109363Snilay@cs.wisc.edu void descheduleDeadlockEvent() { } 1119363Snilay@cs.wisc.edu 1129363Snilay@cs.wisc.edu}; 1139363Snilay@cs.wisc.edu 1149363Snilay@cs.wisc.edu#endif // __MEM_RUBY_SYSTEM_RUBYPORTPROXY_HH__ 1159363Snilay@cs.wisc.edu