Files
compute-runtime/third_party/aub_stream/aubstream/headers/hardware_context.h
ocldev 9560b946fa dependencies update
Signed-off-by: ocldev <ocldev@intel.com>
2022-11-24 12:34:25 +01:00

35 lines
1.3 KiB
C++

/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <cstddef>
#include <cstdint>
namespace aub_stream {
struct AllocationParams;
struct SurfaceInfo;
struct HardwareContext {
virtual void initialize() = 0;
virtual void pollForCompletion() = 0;
virtual void writeAndSubmitBatchBuffer(uint64_t gfxAddress, const void *batchBuffer, size_t size, uint32_t memoryBanks, size_t pageSize) = 0;
virtual void submitBatchBuffer(uint64_t gfxAddress, bool overrideRingHead) = 0;
virtual void writeMemory(uint64_t gfxAddress, const void *memory, size_t size, uint32_t memoryBanks, int hint, size_t pageSize) = 0;
virtual void freeMemory(uint64_t gfxAddress, size_t size) = 0;
virtual void expectMemory(uint64_t gfxAddress, const void *memory, size_t size, uint32_t compareOperation) = 0;
virtual void readMemory(uint64_t gfxAddress, void *memory, size_t size, uint32_t memoryBanks, size_t pageSize) = 0;
virtual void dumpBufferBIN(uint64_t gfxAddress, size_t size) = 0;
virtual void dumpSurface(const SurfaceInfo &surfaceInfo) = 0;
virtual ~HardwareContext() = default;
virtual void writeMemory2(AllocationParams allocationParams) = 0;
virtual void writeMMIO(uint32_t offset, uint32_t value) = 0;
virtual void pollForFenceCompletion() = 0;
};
} // namespace aub_stream