mm_disk.hh revision 4762
13898Ssaidi@eecs.umich.edu/* 23898Ssaidi@eecs.umich.edu * Copyright (c) 2006 The Regents of The University of Michigan 33898Ssaidi@eecs.umich.edu * All rights reserved. 43898Ssaidi@eecs.umich.edu * 53898Ssaidi@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 63898Ssaidi@eecs.umich.edu * modification, are permitted provided that the following conditions are 73898Ssaidi@eecs.umich.edu * met: redistributions of source code must retain the above copyright 83898Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 93898Ssaidi@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 103898Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 113898Ssaidi@eecs.umich.edu * documentation and/or other materials provided with the distribution; 123898Ssaidi@eecs.umich.edu * neither the name of the copyright holders nor the names of its 133898Ssaidi@eecs.umich.edu * contributors may be used to endorse or promote products derived from 143898Ssaidi@eecs.umich.edu * this software without specific prior written permission. 153898Ssaidi@eecs.umich.edu * 163898Ssaidi@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 173898Ssaidi@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 183898Ssaidi@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 193898Ssaidi@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 203898Ssaidi@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 213898Ssaidi@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 223898Ssaidi@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 233898Ssaidi@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 243898Ssaidi@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 253898Ssaidi@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 263898Ssaidi@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 273898Ssaidi@eecs.umich.edu * 283898Ssaidi@eecs.umich.edu * Authors: Ali Saidi 293898Ssaidi@eecs.umich.edu */ 303898Ssaidi@eecs.umich.edu 313898Ssaidi@eecs.umich.edu/** @file 323898Ssaidi@eecs.umich.edu * This device acts as a disk similar to the memory mapped disk device 333898Ssaidi@eecs.umich.edu * in legion. Any access is translated to an offset in the disk image. 343898Ssaidi@eecs.umich.edu */ 353898Ssaidi@eecs.umich.edu 363898Ssaidi@eecs.umich.edu#ifndef __DEV_SPARC_MM_DISK_HH__ 373898Ssaidi@eecs.umich.edu#define __DEV_SPARC_MM_DISK_HH__ 383898Ssaidi@eecs.umich.edu 393898Ssaidi@eecs.umich.edu#include "base/range.hh" 403898Ssaidi@eecs.umich.edu#include "dev/io_device.hh" 413898Ssaidi@eecs.umich.edu#include "dev/disk_image.hh" 424762Snate@binkert.org#include "params/MmDisk.hh" 433898Ssaidi@eecs.umich.edu 443898Ssaidi@eecs.umich.educlass MmDisk : public BasicPioDevice 453898Ssaidi@eecs.umich.edu{ 463898Ssaidi@eecs.umich.edu private: 473898Ssaidi@eecs.umich.edu DiskImage *image; 483898Ssaidi@eecs.umich.edu off_t curSector; 493898Ssaidi@eecs.umich.edu bool dirty; 504011Ssaidi@eecs.umich.edu uint8_t diskData[SectorSize]; 513898Ssaidi@eecs.umich.edu 523898Ssaidi@eecs.umich.edu public: 534762Snate@binkert.org typedef MmDiskParams Params; 544762Snate@binkert.org MmDisk(const Params *p); 554762Snate@binkert.org 564762Snate@binkert.org const Params * 574762Snate@binkert.org params() const 583898Ssaidi@eecs.umich.edu { 594762Snate@binkert.org return dynamic_cast<const Params *>(_params); 604762Snate@binkert.org } 613898Ssaidi@eecs.umich.edu 623898Ssaidi@eecs.umich.edu virtual Tick read(PacketPtr pkt); 633898Ssaidi@eecs.umich.edu virtual Tick write(PacketPtr pkt); 644011Ssaidi@eecs.umich.edu 654011Ssaidi@eecs.umich.edu virtual void serialize(std::ostream &os); 663898Ssaidi@eecs.umich.edu}; 673898Ssaidi@eecs.umich.edu 683898Ssaidi@eecs.umich.edu#endif //__DEV_SPARC_MM_DISK_HH__ 693898Ssaidi@eecs.umich.edu 70