Reorganization directory structure [3/n]

Change-Id: If3dfa3f6007f8810a6a1ae1a4f0c7da38544648d
This commit is contained in:
kamdiedrich
2020-02-23 21:00:51 +01:00
committed by sys_ocldev
parent e177b4fc0f
commit e072275ae6
711 changed files with 94 additions and 94 deletions

View File

@@ -0,0 +1,49 @@
/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "gmm_helper/gmm_lib.h"
#include "helpers/basic_math.h"
#include "memory_manager/memory_constants.h"
#include <memory>
namespace NEO {
class GmmClientContext;
class OsLibrary;
class OSInterface;
struct HardwareInfo;
class GmmHelper {
public:
GmmHelper() = delete;
GmmHelper(OSInterface *osInterface, const HardwareInfo *hwInfo);
MOCKABLE_VIRTUAL ~GmmHelper();
const HardwareInfo *getHardwareInfo();
uint32_t getMOCS(uint32_t type) const;
static constexpr uint64_t maxPossiblePitch = 2147483648;
static uint64_t canonize(uint64_t address) {
return static_cast<int64_t>(address << (64 - GmmHelper::addressWidth)) >> (64 - GmmHelper::addressWidth);
}
static uint64_t decanonize(uint64_t address) {
return (address & maxNBitValue(GmmHelper::addressWidth));
}
GmmClientContext *getClientContext() const;
static std::unique_ptr<GmmClientContext> (*createGmmContextWrapperFunc)(OSInterface *, HardwareInfo *);
protected:
static uint32_t addressWidth;
const HardwareInfo *hwInfo = nullptr;
std::unique_ptr<GmmClientContext> gmmClientContext;
};
} // namespace NEO