se_translating_port_proxy.hh revision 2665
18706Sandreas.hansson@arm.com/*
27586SAli.Saidi@arm.com * Copyright (c) 2001-2005 The Regents of The University of Michigan
37586SAli.Saidi@arm.com * All rights reserved.
47586SAli.Saidi@arm.com *
57586SAli.Saidi@arm.com * Redistribution and use in source and binary forms, with or without
67586SAli.Saidi@arm.com * modification, are permitted provided that the following conditions are
77586SAli.Saidi@arm.com * met: redistributions of source code must retain the above copyright
87586SAli.Saidi@arm.com * notice, this list of conditions and the following disclaimer;
97586SAli.Saidi@arm.com * redistributions in binary form must reproduce the above copyright
107586SAli.Saidi@arm.com * notice, this list of conditions and the following disclaimer in the
117586SAli.Saidi@arm.com * documentation and/or other materials provided with the distribution;
127586SAli.Saidi@arm.com * neither the name of the copyright holders nor the names of its
137905SBrad.Beckmann@amd.com * contributors may be used to endorse or promote products derived from
145323Sgblack@eecs.umich.edu * this software without specific prior written permission.
152934Sktlim@umich.edu *
162934Sktlim@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
172934Sktlim@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
182934Sktlim@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
192934Sktlim@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
202934Sktlim@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
212934Sktlim@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
222934Sktlim@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
232934Sktlim@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
242934Sktlim@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
252934Sktlim@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
262934Sktlim@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
272934Sktlim@umich.edu *
282934Sktlim@umich.edu * Authors: Ron Dreslinski
292934Sktlim@umich.edu *          Ali Saidi
302934Sktlim@umich.edu */
312934Sktlim@umich.edu
322934Sktlim@umich.edu#ifndef __MEM_TRANSLATING_PROT_HH__
332934Sktlim@umich.edu#define __MEM_TRANSLATING_PROT_HH__
342934Sktlim@umich.edu
352934Sktlim@umich.edu#include "mem/port.hh"
362934Sktlim@umich.edu
372934Sktlim@umich.educlass PageTable;
382934Sktlim@umich.edu
392934Sktlim@umich.educlass TranslatingPort : public FunctionalPort
402934Sktlim@umich.edu{
412934Sktlim@umich.edu  private:
422934Sktlim@umich.edu    PageTable *pTable;
432995Ssaidi@eecs.umich.edu    bool allocating;
4410046Snilay@cs.wisc.edu
452934Sktlim@umich.edu  public:
462934Sktlim@umich.edu    TranslatingPort(const std::string &_name,
472934Sktlim@umich.edu                    PageTable *p_table, bool alloc = false);
482934Sktlim@umich.edu    virtual ~TranslatingPort();
492934Sktlim@umich.edu
502934Sktlim@umich.edu    bool tryReadBlob(Addr addr, uint8_t *p, int size);
512934Sktlim@umich.edu    bool tryWriteBlob(Addr addr, uint8_t *p, int size);
522934Sktlim@umich.edu    bool tryMemsetBlob(Addr addr, uint8_t val, int size);
539036Sandreas.hansson@arm.com    bool tryWriteString(Addr addr, const char *str);
546122SSteve.Reinhardt@amd.com    bool tryReadString(std::string &str, Addr addr);
556122SSteve.Reinhardt@amd.com
566122SSteve.Reinhardt@amd.com    virtual void readBlob(Addr addr, uint8_t *p, int size);
576122SSteve.Reinhardt@amd.com    virtual void writeBlob(Addr addr, uint8_t *p, int size);
5810118Snilay@cs.wisc.edu    virtual void memsetBlob(Addr addr, uint8_t val, int size);
5910118Snilay@cs.wisc.edu
604520Ssaidi@eecs.umich.edu    void writeString(Addr addr, const char *str);
614982Ssaidi@eecs.umich.edu    void readString(std::string &str, Addr addr);
624520Ssaidi@eecs.umich.edu};
634520Ssaidi@eecs.umich.edu
642934Sktlim@umich.edu#endif
652934Sktlim@umich.edu