scheduling_policy.hh revision 11308
16145Snate@binkert.org/*
26145Snate@binkert.org * Copyright (c) 2014-2015 Advanced Micro Devices, Inc.
36145Snate@binkert.org * All rights reserved.
46145Snate@binkert.org *
56145Snate@binkert.org * For use for simulation and test purposes only
66145Snate@binkert.org *
76145Snate@binkert.org * Redistribution and use in source and binary forms, with or without
86145Snate@binkert.org * modification, are permitted provided that the following conditions are met:
96145Snate@binkert.org *
106145Snate@binkert.org * 1. Redistributions of source code must retain the above copyright notice,
116145Snate@binkert.org * this list of conditions and the following disclaimer.
126145Snate@binkert.org *
136145Snate@binkert.org * 2. Redistributions in binary form must reproduce the above copyright notice,
146145Snate@binkert.org * this list of conditions and the following disclaimer in the documentation
156145Snate@binkert.org * and/or other materials provided with the distribution.
166145Snate@binkert.org *
176145Snate@binkert.org * 3. Neither the name of the copyright holder nor the names of its contributors
186145Snate@binkert.org * may be used to endorse or promote products derived from this software
196145Snate@binkert.org * without specific prior written permission.
206145Snate@binkert.org *
216145Snate@binkert.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
226145Snate@binkert.org * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
236145Snate@binkert.org * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
246145Snate@binkert.org * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
256145Snate@binkert.org * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
266145Snate@binkert.org * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
276145Snate@binkert.org * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
286145Snate@binkert.org * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
296145Snate@binkert.org * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
306145Snate@binkert.org * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
316284Snate@binkert.org * POSSIBILITY OF SUCH DAMAGE.
326145Snate@binkert.org *
336284Snate@binkert.org * Author: Sooraj Puthoor
346145Snate@binkert.org */
356145Snate@binkert.org
366145Snate@binkert.org#ifndef __SCHEDULING_POLICY_HH__
376145Snate@binkert.org#define __SCHEDULING_POLICY_HH__
386145Snate@binkert.org
396154Snate@binkert.org#include <vector>
406154Snate@binkert.org
416154Snate@binkert.orgtemplate<typename Impl>
426154Snate@binkert.orgclass SchedulingPolicy
436154Snate@binkert.org{
446154Snate@binkert.org  public:
456154Snate@binkert.org    Wavefront* chooseWave() { return policyImpl.chooseWave(); }
466145Snate@binkert.org
476145Snate@binkert.org    void
486896SBrad.Beckmann@amd.com    bindList(std::vector<Wavefront*> *list)
496896SBrad.Beckmann@amd.com    {
506896SBrad.Beckmann@amd.com        return policyImpl.bindList(list);
516145Snate@binkert.org    }
526896SBrad.Beckmann@amd.com
536896SBrad.Beckmann@amd.com  private:
546896SBrad.Beckmann@amd.com    Impl policyImpl;
556896SBrad.Beckmann@amd.com};
566896SBrad.Beckmann@amd.com
576896SBrad.Beckmann@amd.com#endif // __SCHEDULING_POLICY_HH__
586145Snate@binkert.org