blob: 36f83a81235433505ab30c8049f98ae95d383aa0 [file] [log] [blame]
// Copyright 2017 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_INTEL_PCI_DEVICE_H
#define MSD_INTEL_PCI_DEVICE_H
#include <lib/magma/platform/platform_pci_device.h>
#include <lib/magma/platform/platform_semaphore.h>
#include "gtt.h"
#include "interrupt_manager.h"
class MsdIntelPciDevice : public magma::PlatformPciDevice {
public:
std::unique_ptr<magma::PlatformInterrupt> RegisterInterrupt() override { return nullptr; }
// Additional core device implmementation that may reside inside a separate core driver.
virtual bool RegisterInterruptCallback(InterruptManager::InterruptCallback callback, void* data,
uint32_t interrupt_mask) = 0;
virtual void UnregisterInterruptCallback() = 0;
virtual Gtt* GetGtt() = 0;
static std::unique_ptr<MsdIntelPciDevice> CreateShim(void* platform_device_handle);
};
#endif // MSD_INTEL_PCI_DEVICE_H