blob: d5af3d6f01c11de40e99420d1306e62ea8897a9d [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 "gtt.h"
#include "interrupt_manager.h"
#include "platform_pci_device.h"
#include "platform_semaphore.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