2019-06-17 15:27:33 +02:00
|
|
|
/*
|
2025-11-25 10:51:29 +00:00
|
|
|
* Copyright (C) 2019-2025 Intel Corporation
|
2019-06-17 15:27:33 +02:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
2025-11-25 10:51:29 +00:00
|
|
|
#include <cstdint>
|
2022-06-07 09:30:54 +00:00
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
enum class InternalMemoryType : uint32_t {
|
|
|
|
|
notSpecified = 0b0,
|
|
|
|
|
svm = 0b1,
|
|
|
|
|
deviceUnifiedMemory = 0b10,
|
|
|
|
|
hostUnifiedMemory = 0b100,
|
|
|
|
|
sharedUnifiedMemory = 0b1000,
|
2024-09-12 03:01:48 +00:00
|
|
|
reservedDeviceMemory = 0b10000,
|
|
|
|
|
reservedHostMemory = 0b100000
|
2019-06-17 15:27:33 +02:00
|
|
|
};
|
|
|
|
|
|
2023-01-19 09:14:03 +00:00
|
|
|
enum class InternalIpcMemoryType : uint32_t {
|
2023-12-13 10:09:37 +00:00
|
|
|
deviceUnifiedMemory = 0,
|
|
|
|
|
hostUnifiedMemory = 1,
|
|
|
|
|
deviceVirtualAddress = 2
|
2023-01-19 09:14:03 +00:00
|
|
|
};
|
|
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
enum class TransferType : uint32_t {
|
|
|
|
|
unknown = 0,
|
2023-01-20 17:21:19 +00:00
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
hostNonUsmToHostUsm = 1,
|
|
|
|
|
hostNonUsmToDeviceUsm = 2,
|
|
|
|
|
hostNonUsmToSharedUsm = 3,
|
|
|
|
|
hostNonUsmToHostNonUsm = 4,
|
2023-02-09 13:39:17 +00:00
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
hostUsmToHostUsm = 5,
|
|
|
|
|
hostUsmToDeviceUsm = 6,
|
|
|
|
|
hostUsmToSharedUsm = 7,
|
|
|
|
|
hostUsmToHostNonUsm = 8,
|
2023-02-09 13:39:17 +00:00
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
deviceUsmToHostUsm = 9,
|
|
|
|
|
deviceUsmToDeviceUsm = 10,
|
|
|
|
|
deviceUsmToSharedUsm = 11,
|
|
|
|
|
deviceUsmToHostNonUsm = 12,
|
2023-02-09 13:39:17 +00:00
|
|
|
|
2023-12-13 10:09:37 +00:00
|
|
|
sharedUsmToHostUsm = 13,
|
|
|
|
|
sharedUsmToDeviceUsm = 14,
|
|
|
|
|
sharedUsmToSharedUsm = 15,
|
|
|
|
|
sharedUsmToHostNonUsm = 16
|
2023-01-20 17:21:19 +00:00
|
|
|
};
|
|
|
|
|
|
2019-06-17 15:27:33 +02:00
|
|
|
struct UnifiedMemoryControls {
|
|
|
|
|
uint32_t generateMask();
|
|
|
|
|
bool indirectDeviceAllocationsAllowed = false;
|
|
|
|
|
bool indirectHostAllocationsAllowed = false;
|
2019-06-18 07:22:38 +02:00
|
|
|
bool indirectSharedAllocationsAllowed = false;
|
2019-06-17 15:27:33 +02:00
|
|
|
};
|