/* * Copyright 2024 Valve Corporation * Copyright 2023 Alyssa Rosenzweig * SPDX-License-Identifier: MIT */ #pragma once #ifndef __OPENCL_VERSION__ #error "should only be included from OpenCL" #endif /* OpenCL lacks explicitly sized integer types, but we know the sizes of * particular integer types. These typedefs allow defining common headers with * explicit integer types (and therefore compatible data layouts). */ typedef ulong uint64_t; typedef uint uint32_t; typedef ushort uint16_t; typedef uchar uint8_t; typedef long int64_t; typedef int int32_t; typedef short int16_t; typedef char int8_t; typedef int64_t intmax_t; typedef uint64_t uintmax_t; /* These duplicate the C standard library and are required for the * u_intN_min/max implementations. */ #define UINT64_MAX 18446744073709551615ul #define INT64_MAX 9223372036854775807l #define UINT64_C(c) c##UL #define INT8_MIN (-128) #define INT16_MIN (-32768) #define INT32_MIN (-2147483648) #define INT64_MIN (-9223372036854775807l - 1) #define UINT8_MAX 255 #define INT8_MAX 127 #define UINT16_MAX 65535 #define INT16_MAX 32767 #define UINT32_MAX 4294967295U #define INT32_MAX 2147483647 #define INT64_MAX 9223372036854775807l