//
// Modifications, Copyright (C) 2024 Intel Corporation
//
// This software and the related documents are Intel copyrighted materials, and
// your use of them is governed by the express license under which they were
// provided to you ("License"). Unless the License provides otherwise, you may
// not use, modify, copy, publish, distribute, disclose or transmit this
// software or the related documents without Intel's prior written permission.
//
// This software and the related documents are provided as is, with no express
// or implied warranties, other than those that are expressly stated in the
// License.
//
#ifndef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC
#define __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#define __SYCL_PARAM_TRAITS_TEMPLATE_SPEC __SYCL_PARAM_TRAITS_SPEC
#endif
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, device_id, uint32_t, UR_DEVICE_INFO_DEVICE_ID)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, pci_address, std::string, UR_DEVICE_INFO_PCI_ADDRESS)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_eu_count, uint32_t, UR_DEVICE_INFO_GPU_EU_COUNT)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_eu_simd_width, uint32_t, UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_slices, uint32_t, UR_DEVICE_INFO_GPU_EU_SLICES)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_subslices_per_slice, uint32_t, UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_eu_count_per_subslice, uint32_t, UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, gpu_hw_threads_per_eu, uint32_t, UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, max_mem_bandwidth, uint64_t, UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, uuid, detail::uuid_type, UR_DEVICE_INFO_UUID)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, free_memory, uint64_t, UR_DEVICE_INFO_GLOBAL_MEM_FREE)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, memory_clock_rate, uint32_t, UR_DEVICE_INFO_MEMORY_CLOCK_RATE)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, memory_bus_width, uint32_t, UR_DEVICE_INFO_MEMORY_BUS_WIDTH)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, max_compute_queue_indices, int32_t, UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES)
__SYCL_PARAM_TRAITS_SPEC(ext::intel::esimd, device, has_2d_block_io_support, bool, UR_DEVICE_INFO_2D_BLOCK_ARRAY_CAPABILITIES_EXP)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, current_clock_throttle_reasons, std::vector<ext::intel::throttle_reason>, UR_DEVICE_INFO_CURRENT_CLOCK_THROTTLE_REASONS)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, fan_speed, int32_t, UR_DEVICE_INFO_FAN_SPEED)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, min_power_limit, int32_t, UR_DEVICE_INFO_MIN_POWER_LIMIT)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, max_power_limit, int32_t, UR_DEVICE_INFO_MAX_POWER_LIMIT)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, luid, detail::luid_type, __SYCL_TRAIT_HANDLED_IN_RT)
__SYCL_PARAM_TRAITS_SPEC(ext::intel, device, node_mask, uint32_t, __SYCL_TRAIT_HANDLED_IN_RT)
#ifdef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#undef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC
#undef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#endif
