// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "msd_img_driver.h"

extern "C" {
#include "process_stats.h"
#include "pvrsrv.h"
#include "pvrsrv_error.h"
#include "rgxdevice.h"
#include "srvcore.h"
}



MsdImgDriver::MsdImgDriver() { magic_ = kMagic; }

MsdImgDriver::~MsdImgDriver()
{
}

// static
std::unique_ptr<MsdImgDriver>
MsdImgDriver::Create()
{
	return std::unique_ptr<MsdImgDriver>(new MsdImgDriver);
}

// static
void
MsdImgDriver::Destroy(MsdImgDriver* driver)
{
	delete driver;
}
