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 */
2023-08-30 23:37:57 +08:00
uint8_t systemPreferredLocation : 1 ; /* ZE_MEMORY_ADVICE_SET_SYSTEM_MEMORY_PREFERRED_LOCATION or ZE_MEMORY_ADVICE_CLEAR_SYSTEM_MEMORY_PREFERRED_LOCATION */
2022-12-07 20:49:56 +08:00
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