/* * Copyright (C) 2019-2020 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "core/helpers/options.h" #include #include #include namespace NEO { class AubCenter; class ExecutionEnvironment; class GmmPageTableMngr; class MemoryOperationsHandler; class OSInterface; struct RootDeviceEnvironment { RootDeviceEnvironment(ExecutionEnvironment &executionEnvironment); RootDeviceEnvironment(RootDeviceEnvironment &) = delete; MOCKABLE_VIRTUAL ~RootDeviceEnvironment(); MOCKABLE_VIRTUAL void initAubCenter(bool localMemoryEnabled, const std::string &aubFileName, CommandStreamReceiverType csrType); std::unique_ptr osInterface; std::unique_ptr pageTableManager; std::unique_ptr memoryOperationsInterface; std::unique_ptr aubCenter; ExecutionEnvironment &executionEnvironment; }; } // namespace NEO