/* * Copyright (C) 2018-2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "runtime/command_stream/aub_stream_provider.h" #include "runtime/memory_manager/address_mapper.h" #include "runtime/memory_manager/physical_address_allocator.h" #include "third_party/aub_stream/headers/aub_manager.h" namespace OCLRT { struct HardwareInfo; extern AubDump::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName); class AubCenter { public: AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName); AubCenter(); virtual ~AubCenter() = default; void initPhysicalAddressAllocator(PhysicalAddressAllocator *pPhysicalAddressAllocator) { physicalAddressAllocator = std::unique_ptr(pPhysicalAddressAllocator); } PhysicalAddressAllocator *getPhysicalAddressAllocator() const { return physicalAddressAllocator.get(); } AddressMapper *getAddressMapper() const { return addressMapper.get(); } AubStreamProvider *getStreamProvider() const { return streamProvider.get(); } AubDump::AubManager *getAubManager() const { return aubManager.get(); } protected: std::unique_ptr physicalAddressAllocator; std::unique_ptr addressMapper; std::unique_ptr streamProvider; std::unique_ptr aubManager; }; } // namespace OCLRT