2021-10-07 07:22:22 +08:00
|
|
|
/*
|
2023-04-19 08:25:30 +08:00
|
|
|
* Copyright (C) 2021-2023 Intel Corporation
|
2021-10-07 07:22:22 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
2022-12-07 20:49:56 +08:00
|
|
|
struct MemAdviseFlags {
|
|
|
|
union {
|
|
|
|
uint8_t allFlags; /* all memAdvise flags */
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
uint8_t readOnly : 1; /* ZE_MEMORY_ADVICE_SET_READ_MOSTLY or ZE_MEMORY_ADVICE_CLEAR_READ_MOSTLY */
|
|
|
|
uint8_t devicePreferredLocation : 1; /* ZE_MEMORY_ADVICE_SET_PREFERRED_LOCATION or ZE_MEMORY_ADVICE_CLEAR_PREFERRED_LOCATION */
|
|
|
|
uint8_t nonAtomic : 1; /* ZE_MEMORY_ADVICE_SET_NON_ATOMIC_MOSTLY or ZE_MEMORY_ADVICE_CLEAR_NON_ATOMIC_MOSTLY */
|
|
|
|
uint8_t cachedMemory : 1; /* ZE_MEMORY_ADVICE_BIAS_CACHED or ZE_MEMORY_ADVICE_BIAS_UNCACHED */
|
|
|
|
uint8_t cpuMigrationBlocked : 1; /* ZE_MEMORY_ADVICE_SET_READ_MOSTLY and ZE_MEMORY_ADVICE_SET_PREFERRED_LOCATION */
|
|
|
|
uint8_t reserved2 : 1;
|
|
|
|
uint8_t reserved1 : 1;
|
|
|
|
uint8_t reserved0 : 1;
|
|
|
|
};
|
2021-10-07 07:22:22 +08:00
|
|
|
};
|
2022-12-07 20:49:56 +08:00
|
|
|
MemAdviseFlags() {
|
|
|
|
allFlags = 0;
|
|
|
|
cachedMemory = 1;
|
2021-10-11 17:27:26 +08:00
|
|
|
}
|
2022-12-07 20:49:56 +08:00
|
|
|
};
|
|
|
|
static_assert(sizeof(MemAdviseFlags) == sizeof(uint8_t), "");
|
2021-10-07 07:22:22 +08:00
|
|
|
} // namespace NEO
|