/*
 * Copyright (C) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: MIT
 *
 */

#pragma once

#include "runtime/helpers/extendable_enum.h"

namespace MemoryPool {
struct Type : ExtendableEnum {
    constexpr Type(uint32_t val) : ExtendableEnum(val) {}
};
constexpr Type MemoryNull{0};
constexpr Type System4KBPages{1};
constexpr Type System64KBPages{2};
constexpr Type System4KBPagesWith32BitGpuAddressing{3};
constexpr Type System64KBPagesWith32BitGpuAddressing{4};
constexpr Type SystemCpuInaccessible{5};

inline bool isSystemMemoryPool(Type pool) {
    if (pool == System4KBPages || pool == MemoryPool::System64KBPages || pool == System4KBPagesWith32BitGpuAddressing || pool == System64KBPagesWith32BitGpuAddressing) {
        return true;
    }
    return false;
}
} // namespace MemoryPool
