mm_disk.hh revision 11347
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 "dev/io_device.hh" 4011264Sandreas.sandberg@arm.com#include "dev/storage/disk_image.hh" 414762Snate@binkert.org#include "params/MmDisk.hh" 423898Ssaidi@eecs.umich.edu 433898Ssaidi@eecs.umich.educlass MmDisk : public BasicPioDevice 443898Ssaidi@eecs.umich.edu{ 453898Ssaidi@eecs.umich.edu private: 463898Ssaidi@eecs.umich.edu DiskImage *image; 473898Ssaidi@eecs.umich.edu off_t curSector; 483898Ssaidi@eecs.umich.edu bool dirty; 494011Ssaidi@eecs.umich.edu uint8_t diskData[SectorSize]; 503898Ssaidi@eecs.umich.edu 513898Ssaidi@eecs.umich.edu public: 524762Snate@binkert.org typedef MmDiskParams Params; 534762Snate@binkert.org MmDisk(const Params *p); 544762Snate@binkert.org 554762Snate@binkert.org const Params * 564762Snate@binkert.org params() const 573898Ssaidi@eecs.umich.edu { 584762Snate@binkert.org return dynamic_cast<const Params *>(_params); 594762Snate@binkert.org } 603898Ssaidi@eecs.umich.edu 6111347Sandreas.hansson@arm.com Tick read(PacketPtr pkt) override; 6211347Sandreas.hansson@arm.com Tick write(PacketPtr pkt) override; 634011Ssaidi@eecs.umich.edu 6411168Sandreas.hansson@arm.com void serialize(CheckpointOut &cp) const override; 653898Ssaidi@eecs.umich.edu}; 663898Ssaidi@eecs.umich.edu 673898Ssaidi@eecs.umich.edu#endif //__DEV_SPARC_MM_DISK_HH__ 683898Ssaidi@eecs.umich.edu 69