blob: 3ba4cc029be1f930e164663ccff9a88b5e06bd76 [file] [log] [blame]
// 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.
#ifndef MSD_IMG_DRIVER_H
#define MSD_IMG_DRIVER_H
#include <memory>
#include "magma_util/macros.h"
#include "msd.h"
class MsdImgDriver : public msd_driver_t
{
public:
virtual ~MsdImgDriver();
static std::unique_ptr<MsdImgDriver> Create();
static void Destroy(MsdImgDriver* drv);
static MsdImgDriver* cast(msd_driver_t* drv)
{
DASSERT(drv);
DASSERT(drv->magic_ == kMagic);
return static_cast<MsdImgDriver*>(drv);
}
void configure(uint32_t flags) { configure_flags_ = flags; }
uint32_t configure_flags() { return configure_flags_; }
private:
MsdImgDriver();
static const uint32_t kMagic = 0x64726976; //"driv"
uint32_t configure_flags_ = 0;
};
#endif // MSD_IMG_DRIVER_H