40 lines
893 B
C++
40 lines
893 B
C++
/*
|
|
* Copyright (C) 2017-2020 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace NEO {
|
|
class ExecutionEnvironment;
|
|
class HwDeviceId;
|
|
|
|
class OSInterface {
|
|
|
|
public:
|
|
class OSInterfaceImpl;
|
|
OSInterface();
|
|
virtual ~OSInterface();
|
|
OSInterface(const OSInterface &) = delete;
|
|
OSInterface &operator=(const OSInterface &) = delete;
|
|
|
|
OSInterfaceImpl *get() const {
|
|
return osInterfaceImpl;
|
|
};
|
|
static bool osEnabled64kbPages;
|
|
static bool osEnableLocalMemory;
|
|
static bool are64kbPagesEnabled();
|
|
uint32_t getDeviceHandle() const;
|
|
void setGmmInputArgs(void *args);
|
|
static std::vector<std::unique_ptr<HwDeviceId>> discoverDevices(ExecutionEnvironment &executionEnvironment);
|
|
|
|
protected:
|
|
OSInterfaceImpl *osInterfaceImpl = nullptr;
|
|
};
|
|
} // namespace NEO
|