mm_disk.hh revision 8229
16757SAli.Saidi@ARM.com/* 26757SAli.Saidi@ARM.com * Copyright (c) 2006 The Regents of The University of Michigan 36757SAli.Saidi@ARM.com * All rights reserved. 46757SAli.Saidi@ARM.com * 56757SAli.Saidi@ARM.com * Redistribution and use in source and binary forms, with or without 66757SAli.Saidi@ARM.com * modification, are permitted provided that the following conditions are 76757SAli.Saidi@ARM.com * met: redistributions of source code must retain the above copyright 86757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer; 96757SAli.Saidi@ARM.com * redistributions in binary form must reproduce the above copyright 106757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer in the 116757SAli.Saidi@ARM.com * documentation and/or other materials provided with the distribution; 126757SAli.Saidi@ARM.com * neither the name of the copyright holders nor the names of its 136757SAli.Saidi@ARM.com * contributors may be used to endorse or promote products derived from 146757SAli.Saidi@ARM.com * this software without specific prior written permission. 156757SAli.Saidi@ARM.com * 166757SAli.Saidi@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 176757SAli.Saidi@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 186757SAli.Saidi@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 196757SAli.Saidi@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 206757SAli.Saidi@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 216757SAli.Saidi@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 226757SAli.Saidi@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 236757SAli.Saidi@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 246757SAli.Saidi@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 256757SAli.Saidi@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 266757SAli.Saidi@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 276757SAli.Saidi@ARM.com * 286757SAli.Saidi@ARM.com * Authors: Ali Saidi 296757SAli.Saidi@ARM.com */ 306757SAli.Saidi@ARM.com 316757SAli.Saidi@ARM.com/** @file 326757SAli.Saidi@ARM.com * This device acts as a disk similar to the memory mapped disk device 336757SAli.Saidi@ARM.com * in legion. Any access is translated to an offset in the disk image. 346757SAli.Saidi@ARM.com */ 356757SAli.Saidi@ARM.com 366757SAli.Saidi@ARM.com#ifndef __DEV_SPARC_MM_DISK_HH__ 376757SAli.Saidi@ARM.com#define __DEV_SPARC_MM_DISK_HH__ 38 39#include "base/range.hh" 40#include "dev/disk_image.hh" 41#include "dev/io_device.hh" 42#include "params/MmDisk.hh" 43 44class MmDisk : public BasicPioDevice 45{ 46 private: 47 DiskImage *image; 48 off_t curSector; 49 bool dirty; 50 uint8_t diskData[SectorSize]; 51 52 public: 53 typedef MmDiskParams Params; 54 MmDisk(const Params *p); 55 56 const Params * 57 params() const 58 { 59 return dynamic_cast<const Params *>(_params); 60 } 61 62 virtual Tick read(PacketPtr pkt); 63 virtual Tick write(PacketPtr pkt); 64 65 virtual void serialize(std::ostream &os); 66}; 67 68#endif //__DEV_SPARC_MM_DISK_HH__ 69 70