blob: 1cf109622599784e0aa31122f370a9d52fa40b87 [file] [log] [blame]
// Copyright 2020 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_VSI_PLATFORM_DEVICE_H
#define MSD_VSI_PLATFORM_DEVICE_H
#include <lib/magma/platform/platform_device.h>
#include <optional>
class MsdVsiPlatformDevice {
public:
virtual ~MsdVsiPlatformDevice() = default;
MsdVsiPlatformDevice(std::unique_ptr<magma::PlatformDevice> platform_device)
: platform_device_(std::move(platform_device)) {}
magma::PlatformDevice* platform_device() { return platform_device_.get(); }
virtual std::optional<uint64_t> GetExternalSramPhysicalBase() const = 0;
static std::unique_ptr<MsdVsiPlatformDevice> Create(void* platform_device_handle);
protected:
std::unique_ptr<magma::PlatformDevice> platform_device_;
};
#endif // MSD_VSI_PLATFORM_DEVICE_H