drain.cc revision 9342
19342SAndreas.Sandberg@arm.com/*
29342SAndreas.Sandberg@arm.com * Copyright (c) 2012 ARM Limited
39342SAndreas.Sandberg@arm.com * All rights reserved
49342SAndreas.Sandberg@arm.com *
59342SAndreas.Sandberg@arm.com * The license below extends only to copyright in the software and shall
69342SAndreas.Sandberg@arm.com * not be construed as granting a license to any other intellectual
79342SAndreas.Sandberg@arm.com * property including but not limited to intellectual property relating
89342SAndreas.Sandberg@arm.com * to a hardware implementation of the functionality of the software
99342SAndreas.Sandberg@arm.com * licensed hereunder.  You may use the software subject to the license
109342SAndreas.Sandberg@arm.com * terms below provided that you ensure that this notice is replicated
119342SAndreas.Sandberg@arm.com * unmodified and in its entirety in all distributions of the software,
129342SAndreas.Sandberg@arm.com * modified or unmodified, in source code or in binary form.
139342SAndreas.Sandberg@arm.com *
149342SAndreas.Sandberg@arm.com * Redistribution and use in source and binary forms, with or without
159342SAndreas.Sandberg@arm.com * modification, are permitted provided that the following conditions are
169342SAndreas.Sandberg@arm.com * met: redistributions of source code must retain the above copyright
179342SAndreas.Sandberg@arm.com * notice, this list of conditions and the following disclaimer;
189342SAndreas.Sandberg@arm.com * redistributions in binary form must reproduce the above copyright
199342SAndreas.Sandberg@arm.com * notice, this list of conditions and the following disclaimer in the
209342SAndreas.Sandberg@arm.com * documentation and/or other materials provided with the distribution;
219342SAndreas.Sandberg@arm.com * neither the name of the copyright holders nor the names of its
229342SAndreas.Sandberg@arm.com * contributors may be used to endorse or promote products derived from
239342SAndreas.Sandberg@arm.com * this software without specific prior written permission.
249342SAndreas.Sandberg@arm.com *
259342SAndreas.Sandberg@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
269342SAndreas.Sandberg@arm.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
279342SAndreas.Sandberg@arm.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
289342SAndreas.Sandberg@arm.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
299342SAndreas.Sandberg@arm.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
309342SAndreas.Sandberg@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
319342SAndreas.Sandberg@arm.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
329342SAndreas.Sandberg@arm.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
339342SAndreas.Sandberg@arm.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
349342SAndreas.Sandberg@arm.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
359342SAndreas.Sandberg@arm.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
369342SAndreas.Sandberg@arm.com *
379342SAndreas.Sandberg@arm.com * Authors: Andreas Sandberg
389342SAndreas.Sandberg@arm.com */
399342SAndreas.Sandberg@arm.com
409342SAndreas.Sandberg@arm.com#include "sim/drain.hh"
419342SAndreas.Sandberg@arm.com#include "sim/sim_exit.hh"
429342SAndreas.Sandberg@arm.com
439342SAndreas.Sandberg@arm.comDrainManager::DrainManager()
449342SAndreas.Sandberg@arm.com    : _count(0)
459342SAndreas.Sandberg@arm.com{
469342SAndreas.Sandberg@arm.com}
479342SAndreas.Sandberg@arm.com
489342SAndreas.Sandberg@arm.comDrainManager::~DrainManager()
499342SAndreas.Sandberg@arm.com{
509342SAndreas.Sandberg@arm.com}
519342SAndreas.Sandberg@arm.com
529342SAndreas.Sandberg@arm.comvoid
539342SAndreas.Sandberg@arm.comDrainManager::drainCycleDone()
549342SAndreas.Sandberg@arm.com{
559342SAndreas.Sandberg@arm.com    exitSimLoop("Finished drain", 0);
569342SAndreas.Sandberg@arm.com}
579342SAndreas.Sandberg@arm.com
589342SAndreas.Sandberg@arm.com
599342SAndreas.Sandberg@arm.com
609342SAndreas.Sandberg@arm.comDrainable::Drainable()
619342SAndreas.Sandberg@arm.com    : _drainState(Running)
629342SAndreas.Sandberg@arm.com{
639342SAndreas.Sandberg@arm.com}
649342SAndreas.Sandberg@arm.com
659342SAndreas.Sandberg@arm.comDrainable::~Drainable()
669342SAndreas.Sandberg@arm.com{
679342SAndreas.Sandberg@arm.com}
689342SAndreas.Sandberg@arm.com
699342SAndreas.Sandberg@arm.comvoid
709342SAndreas.Sandberg@arm.comDrainable::drainResume()
719342SAndreas.Sandberg@arm.com{
729342SAndreas.Sandberg@arm.com    _drainState = Running;
739342SAndreas.Sandberg@arm.com}
74