1*8975f5c5SAndroid Build Coastguard Worker #ifndef __khrplatform_h_ 2*8975f5c5SAndroid Build Coastguard Worker #define __khrplatform_h_ 3*8975f5c5SAndroid Build Coastguard Worker 4*8975f5c5SAndroid Build Coastguard Worker /* 5*8975f5c5SAndroid Build Coastguard Worker ** Copyright (c) 2008-2018 The Khronos Group Inc. 6*8975f5c5SAndroid Build Coastguard Worker ** 7*8975f5c5SAndroid Build Coastguard Worker ** Permission is hereby granted, free of charge, to any person obtaining a 8*8975f5c5SAndroid Build Coastguard Worker ** copy of this software and/or associated documentation files (the 9*8975f5c5SAndroid Build Coastguard Worker ** "Materials"), to deal in the Materials without restriction, including 10*8975f5c5SAndroid Build Coastguard Worker ** without limitation the rights to use, copy, modify, merge, publish, 11*8975f5c5SAndroid Build Coastguard Worker ** distribute, sublicense, and/or sell copies of the Materials, and to 12*8975f5c5SAndroid Build Coastguard Worker ** permit persons to whom the Materials are furnished to do so, subject to 13*8975f5c5SAndroid Build Coastguard Worker ** the following conditions: 14*8975f5c5SAndroid Build Coastguard Worker ** 15*8975f5c5SAndroid Build Coastguard Worker ** The above copyright notice and this permission notice shall be included 16*8975f5c5SAndroid Build Coastguard Worker ** in all copies or substantial portions of the Materials. 17*8975f5c5SAndroid Build Coastguard Worker ** 18*8975f5c5SAndroid Build Coastguard Worker ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19*8975f5c5SAndroid Build Coastguard Worker ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20*8975f5c5SAndroid Build Coastguard Worker ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21*8975f5c5SAndroid Build Coastguard Worker ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22*8975f5c5SAndroid Build Coastguard Worker ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23*8975f5c5SAndroid Build Coastguard Worker ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24*8975f5c5SAndroid Build Coastguard Worker ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 25*8975f5c5SAndroid Build Coastguard Worker */ 26*8975f5c5SAndroid Build Coastguard Worker 27*8975f5c5SAndroid Build Coastguard Worker /* Khronos platform-specific types and definitions. 28*8975f5c5SAndroid Build Coastguard Worker * 29*8975f5c5SAndroid Build Coastguard Worker * The master copy of khrplatform.h is maintained in the Khronos EGL 30*8975f5c5SAndroid Build Coastguard Worker * Registry repository at https://github.com/KhronosGroup/EGL-Registry 31*8975f5c5SAndroid Build Coastguard Worker * The last semantic modification to khrplatform.h was at commit ID: 32*8975f5c5SAndroid Build Coastguard Worker * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 33*8975f5c5SAndroid Build Coastguard Worker * 34*8975f5c5SAndroid Build Coastguard Worker * Adopters may modify this file to suit their platform. Adopters are 35*8975f5c5SAndroid Build Coastguard Worker * encouraged to submit platform specific modifications to the Khronos 36*8975f5c5SAndroid Build Coastguard Worker * group so that they can be included in future versions of this file. 37*8975f5c5SAndroid Build Coastguard Worker * Please submit changes by filing pull requests or issues on 38*8975f5c5SAndroid Build Coastguard Worker * the EGL Registry repository linked above. 39*8975f5c5SAndroid Build Coastguard Worker * 40*8975f5c5SAndroid Build Coastguard Worker * 41*8975f5c5SAndroid Build Coastguard Worker * See the Implementer's Guidelines for information about where this file 42*8975f5c5SAndroid Build Coastguard Worker * should be located on your system and for more details of its use: 43*8975f5c5SAndroid Build Coastguard Worker * http://www.khronos.org/registry/implementers_guide.pdf 44*8975f5c5SAndroid Build Coastguard Worker * 45*8975f5c5SAndroid Build Coastguard Worker * This file should be included as 46*8975f5c5SAndroid Build Coastguard Worker * #include <KHR/khrplatform.h> 47*8975f5c5SAndroid Build Coastguard Worker * by Khronos client API header files that use its types and defines. 48*8975f5c5SAndroid Build Coastguard Worker * 49*8975f5c5SAndroid Build Coastguard Worker * The types in khrplatform.h should only be used to define API-specific types. 50*8975f5c5SAndroid Build Coastguard Worker * 51*8975f5c5SAndroid Build Coastguard Worker * Types defined in khrplatform.h: 52*8975f5c5SAndroid Build Coastguard Worker * khronos_int8_t signed 8 bit 53*8975f5c5SAndroid Build Coastguard Worker * khronos_uint8_t unsigned 8 bit 54*8975f5c5SAndroid Build Coastguard Worker * khronos_int16_t signed 16 bit 55*8975f5c5SAndroid Build Coastguard Worker * khronos_uint16_t unsigned 16 bit 56*8975f5c5SAndroid Build Coastguard Worker * khronos_int32_t signed 32 bit 57*8975f5c5SAndroid Build Coastguard Worker * khronos_uint32_t unsigned 32 bit 58*8975f5c5SAndroid Build Coastguard Worker * khronos_int64_t signed 64 bit 59*8975f5c5SAndroid Build Coastguard Worker * khronos_uint64_t unsigned 64 bit 60*8975f5c5SAndroid Build Coastguard Worker * khronos_intptr_t signed same number of bits as a pointer 61*8975f5c5SAndroid Build Coastguard Worker * khronos_uintptr_t unsigned same number of bits as a pointer 62*8975f5c5SAndroid Build Coastguard Worker * khronos_ssize_t signed size 63*8975f5c5SAndroid Build Coastguard Worker * khronos_usize_t unsigned size 64*8975f5c5SAndroid Build Coastguard Worker * khronos_float_t signed 32 bit floating point 65*8975f5c5SAndroid Build Coastguard Worker * khronos_time_ns_t unsigned 64 bit time in nanoseconds 66*8975f5c5SAndroid Build Coastguard Worker * khronos_utime_nanoseconds_t unsigned time interval or absolute time in 67*8975f5c5SAndroid Build Coastguard Worker * nanoseconds 68*8975f5c5SAndroid Build Coastguard Worker * khronos_stime_nanoseconds_t signed time interval in nanoseconds 69*8975f5c5SAndroid Build Coastguard Worker * khronos_boolean_enum_t enumerated boolean type. This should 70*8975f5c5SAndroid Build Coastguard Worker * only be used as a base type when a client API's boolean type is 71*8975f5c5SAndroid Build Coastguard Worker * an enum. Client APIs which use an integer or other type for 72*8975f5c5SAndroid Build Coastguard Worker * booleans cannot use this as the base type for their boolean. 73*8975f5c5SAndroid Build Coastguard Worker * 74*8975f5c5SAndroid Build Coastguard Worker * Tokens defined in khrplatform.h: 75*8975f5c5SAndroid Build Coastguard Worker * 76*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. 77*8975f5c5SAndroid Build Coastguard Worker * 78*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. 79*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. 80*8975f5c5SAndroid Build Coastguard Worker * 81*8975f5c5SAndroid Build Coastguard Worker * Calling convention macros defined in this file: 82*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_APICALL 83*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_APIENTRY 84*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_APIATTRIBUTES 85*8975f5c5SAndroid Build Coastguard Worker * 86*8975f5c5SAndroid Build Coastguard Worker * These may be used in function prototypes as: 87*8975f5c5SAndroid Build Coastguard Worker * 88*8975f5c5SAndroid Build Coastguard Worker * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( 89*8975f5c5SAndroid Build Coastguard Worker * int arg1, 90*8975f5c5SAndroid Build Coastguard Worker * int arg2) KHRONOS_APIATTRIBUTES; 91*8975f5c5SAndroid Build Coastguard Worker */ 92*8975f5c5SAndroid Build Coastguard Worker 93*8975f5c5SAndroid Build Coastguard Worker #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) 94*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_STATIC 1 95*8975f5c5SAndroid Build Coastguard Worker #endif 96*8975f5c5SAndroid Build Coastguard Worker 97*8975f5c5SAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 98*8975f5c5SAndroid Build Coastguard Worker * Definition of KHRONOS_APICALL 99*8975f5c5SAndroid Build Coastguard Worker *------------------------------------------------------------------------- 100*8975f5c5SAndroid Build Coastguard Worker * This precedes the return type of the function in the function prototype. 101*8975f5c5SAndroid Build Coastguard Worker */ 102*8975f5c5SAndroid Build Coastguard Worker #if defined(KHRONOS_STATIC) 103*8975f5c5SAndroid Build Coastguard Worker /* If the preprocessor constant KHRONOS_STATIC is defined, make the 104*8975f5c5SAndroid Build Coastguard Worker * header compatible with static linking. */ 105*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APICALL 106*8975f5c5SAndroid Build Coastguard Worker #elif defined(_WIN32) 107*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APICALL __declspec(dllimport) 108*8975f5c5SAndroid Build Coastguard Worker #elif defined (__SYMBIAN32__) 109*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APICALL IMPORT_C 110*8975f5c5SAndroid Build Coastguard Worker #elif defined(__ANDROID__) 111*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APICALL __attribute__((visibility("default"))) 112*8975f5c5SAndroid Build Coastguard Worker #else 113*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APICALL 114*8975f5c5SAndroid Build Coastguard Worker #endif 115*8975f5c5SAndroid Build Coastguard Worker 116*8975f5c5SAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 117*8975f5c5SAndroid Build Coastguard Worker * Definition of KHRONOS_APIENTRY 118*8975f5c5SAndroid Build Coastguard Worker *------------------------------------------------------------------------- 119*8975f5c5SAndroid Build Coastguard Worker * This follows the return type of the function and precedes the function 120*8975f5c5SAndroid Build Coastguard Worker * name in the function prototype. 121*8975f5c5SAndroid Build Coastguard Worker */ 122*8975f5c5SAndroid Build Coastguard Worker #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) 123*8975f5c5SAndroid Build Coastguard Worker /* Win32 but not WinCE */ 124*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APIENTRY __stdcall 125*8975f5c5SAndroid Build Coastguard Worker #else 126*8975f5c5SAndroid Build Coastguard Worker # define KHRONOS_APIENTRY 127*8975f5c5SAndroid Build Coastguard Worker #endif 128*8975f5c5SAndroid Build Coastguard Worker 129*8975f5c5SAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 130*8975f5c5SAndroid Build Coastguard Worker * Definition of KHRONOS_APIATTRIBUTES 131*8975f5c5SAndroid Build Coastguard Worker *------------------------------------------------------------------------- 132*8975f5c5SAndroid Build Coastguard Worker * This follows the closing parenthesis of the function prototype arguments. 133*8975f5c5SAndroid Build Coastguard Worker */ 134*8975f5c5SAndroid Build Coastguard Worker #if defined (__ARMCC_2__) 135*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_APIATTRIBUTES __softfp 136*8975f5c5SAndroid Build Coastguard Worker #else 137*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_APIATTRIBUTES 138*8975f5c5SAndroid Build Coastguard Worker #endif 139*8975f5c5SAndroid Build Coastguard Worker 140*8975f5c5SAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 141*8975f5c5SAndroid Build Coastguard Worker * basic type definitions 142*8975f5c5SAndroid Build Coastguard Worker *-----------------------------------------------------------------------*/ 143*8975f5c5SAndroid Build Coastguard Worker #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) 144*8975f5c5SAndroid Build Coastguard Worker 145*8975f5c5SAndroid Build Coastguard Worker 146*8975f5c5SAndroid Build Coastguard Worker /* 147*8975f5c5SAndroid Build Coastguard Worker * Using <stdint.h> 148*8975f5c5SAndroid Build Coastguard Worker */ 149*8975f5c5SAndroid Build Coastguard Worker #include <stdint.h> 150*8975f5c5SAndroid Build Coastguard Worker typedef int32_t khronos_int32_t; 151*8975f5c5SAndroid Build Coastguard Worker typedef uint32_t khronos_uint32_t; 152*8975f5c5SAndroid Build Coastguard Worker typedef int64_t khronos_int64_t; 153*8975f5c5SAndroid Build Coastguard Worker typedef uint64_t khronos_uint64_t; 154*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 1 155*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 1 156*8975f5c5SAndroid Build Coastguard Worker 157*8975f5c5SAndroid Build Coastguard Worker #elif defined(__VMS ) || defined(__sgi) 158*8975f5c5SAndroid Build Coastguard Worker 159*8975f5c5SAndroid Build Coastguard Worker /* 160*8975f5c5SAndroid Build Coastguard Worker * Using <inttypes.h> 161*8975f5c5SAndroid Build Coastguard Worker */ 162*8975f5c5SAndroid Build Coastguard Worker #include <inttypes.h> 163*8975f5c5SAndroid Build Coastguard Worker typedef int32_t khronos_int32_t; 164*8975f5c5SAndroid Build Coastguard Worker typedef uint32_t khronos_uint32_t; 165*8975f5c5SAndroid Build Coastguard Worker typedef int64_t khronos_int64_t; 166*8975f5c5SAndroid Build Coastguard Worker typedef uint64_t khronos_uint64_t; 167*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 1 168*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 1 169*8975f5c5SAndroid Build Coastguard Worker 170*8975f5c5SAndroid Build Coastguard Worker #elif defined(_WIN32) && !defined(__SCITECH_SNAP__) 171*8975f5c5SAndroid Build Coastguard Worker 172*8975f5c5SAndroid Build Coastguard Worker /* 173*8975f5c5SAndroid Build Coastguard Worker * Win32 174*8975f5c5SAndroid Build Coastguard Worker */ 175*8975f5c5SAndroid Build Coastguard Worker typedef __int32 khronos_int32_t; 176*8975f5c5SAndroid Build Coastguard Worker typedef unsigned __int32 khronos_uint32_t; 177*8975f5c5SAndroid Build Coastguard Worker typedef __int64 khronos_int64_t; 178*8975f5c5SAndroid Build Coastguard Worker typedef unsigned __int64 khronos_uint64_t; 179*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 1 180*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 1 181*8975f5c5SAndroid Build Coastguard Worker 182*8975f5c5SAndroid Build Coastguard Worker #elif defined(__sun__) || defined(__digital__) 183*8975f5c5SAndroid Build Coastguard Worker 184*8975f5c5SAndroid Build Coastguard Worker /* 185*8975f5c5SAndroid Build Coastguard Worker * Sun or Digital 186*8975f5c5SAndroid Build Coastguard Worker */ 187*8975f5c5SAndroid Build Coastguard Worker typedef int khronos_int32_t; 188*8975f5c5SAndroid Build Coastguard Worker typedef unsigned int khronos_uint32_t; 189*8975f5c5SAndroid Build Coastguard Worker #if defined(__arch64__) || defined(_LP64) 190*8975f5c5SAndroid Build Coastguard Worker typedef long int khronos_int64_t; 191*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long int khronos_uint64_t; 192*8975f5c5SAndroid Build Coastguard Worker #else 193*8975f5c5SAndroid Build Coastguard Worker typedef long long int khronos_int64_t; 194*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long long int khronos_uint64_t; 195*8975f5c5SAndroid Build Coastguard Worker #endif /* __arch64__ */ 196*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 1 197*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 1 198*8975f5c5SAndroid Build Coastguard Worker 199*8975f5c5SAndroid Build Coastguard Worker #elif 0 200*8975f5c5SAndroid Build Coastguard Worker 201*8975f5c5SAndroid Build Coastguard Worker /* 202*8975f5c5SAndroid Build Coastguard Worker * Hypothetical platform with no float or int64 support 203*8975f5c5SAndroid Build Coastguard Worker */ 204*8975f5c5SAndroid Build Coastguard Worker typedef int khronos_int32_t; 205*8975f5c5SAndroid Build Coastguard Worker typedef unsigned int khronos_uint32_t; 206*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 0 207*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 0 208*8975f5c5SAndroid Build Coastguard Worker 209*8975f5c5SAndroid Build Coastguard Worker #else 210*8975f5c5SAndroid Build Coastguard Worker 211*8975f5c5SAndroid Build Coastguard Worker /* 212*8975f5c5SAndroid Build Coastguard Worker * Generic fallback 213*8975f5c5SAndroid Build Coastguard Worker */ 214*8975f5c5SAndroid Build Coastguard Worker #include <stdint.h> 215*8975f5c5SAndroid Build Coastguard Worker typedef int32_t khronos_int32_t; 216*8975f5c5SAndroid Build Coastguard Worker typedef uint32_t khronos_uint32_t; 217*8975f5c5SAndroid Build Coastguard Worker typedef int64_t khronos_int64_t; 218*8975f5c5SAndroid Build Coastguard Worker typedef uint64_t khronos_uint64_t; 219*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_INT64 1 220*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_SUPPORT_FLOAT 1 221*8975f5c5SAndroid Build Coastguard Worker 222*8975f5c5SAndroid Build Coastguard Worker #endif 223*8975f5c5SAndroid Build Coastguard Worker 224*8975f5c5SAndroid Build Coastguard Worker 225*8975f5c5SAndroid Build Coastguard Worker /* 226*8975f5c5SAndroid Build Coastguard Worker * Types that are (so far) the same on all platforms 227*8975f5c5SAndroid Build Coastguard Worker */ 228*8975f5c5SAndroid Build Coastguard Worker typedef signed char khronos_int8_t; 229*8975f5c5SAndroid Build Coastguard Worker typedef unsigned char khronos_uint8_t; 230*8975f5c5SAndroid Build Coastguard Worker typedef signed short int khronos_int16_t; 231*8975f5c5SAndroid Build Coastguard Worker typedef unsigned short int khronos_uint16_t; 232*8975f5c5SAndroid Build Coastguard Worker 233*8975f5c5SAndroid Build Coastguard Worker /* 234*8975f5c5SAndroid Build Coastguard Worker * Types that differ between LLP64 and LP64 architectures - in LLP64, 235*8975f5c5SAndroid Build Coastguard Worker * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears 236*8975f5c5SAndroid Build Coastguard Worker * to be the only LLP64 architecture in current use. 237*8975f5c5SAndroid Build Coastguard Worker */ 238*8975f5c5SAndroid Build Coastguard Worker #ifdef _WIN64 239*8975f5c5SAndroid Build Coastguard Worker typedef signed long long int khronos_intptr_t; 240*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long long int khronos_uintptr_t; 241*8975f5c5SAndroid Build Coastguard Worker typedef signed long long int khronos_ssize_t; 242*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long long int khronos_usize_t; 243*8975f5c5SAndroid Build Coastguard Worker #else 244*8975f5c5SAndroid Build Coastguard Worker typedef signed long int khronos_intptr_t; 245*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long int khronos_uintptr_t; 246*8975f5c5SAndroid Build Coastguard Worker typedef signed long int khronos_ssize_t; 247*8975f5c5SAndroid Build Coastguard Worker typedef unsigned long int khronos_usize_t; 248*8975f5c5SAndroid Build Coastguard Worker #endif 249*8975f5c5SAndroid Build Coastguard Worker 250*8975f5c5SAndroid Build Coastguard Worker #if KHRONOS_SUPPORT_FLOAT 251*8975f5c5SAndroid Build Coastguard Worker /* 252*8975f5c5SAndroid Build Coastguard Worker * Float type 253*8975f5c5SAndroid Build Coastguard Worker */ 254*8975f5c5SAndroid Build Coastguard Worker typedef float khronos_float_t; 255*8975f5c5SAndroid Build Coastguard Worker #endif 256*8975f5c5SAndroid Build Coastguard Worker 257*8975f5c5SAndroid Build Coastguard Worker #if KHRONOS_SUPPORT_INT64 258*8975f5c5SAndroid Build Coastguard Worker /* Time types 259*8975f5c5SAndroid Build Coastguard Worker * 260*8975f5c5SAndroid Build Coastguard Worker * These types can be used to represent a time interval in nanoseconds or 261*8975f5c5SAndroid Build Coastguard Worker * an absolute Unadjusted System Time. Unadjusted System Time is the number 262*8975f5c5SAndroid Build Coastguard Worker * of nanoseconds since some arbitrary system event (e.g. since the last 263*8975f5c5SAndroid Build Coastguard Worker * time the system booted). The Unadjusted System Time is an unsigned 264*8975f5c5SAndroid Build Coastguard Worker * 64 bit value that wraps back to 0 every 584 years. Time intervals 265*8975f5c5SAndroid Build Coastguard Worker * may be either signed or unsigned. 266*8975f5c5SAndroid Build Coastguard Worker */ 267*8975f5c5SAndroid Build Coastguard Worker typedef khronos_uint64_t khronos_utime_nanoseconds_t; 268*8975f5c5SAndroid Build Coastguard Worker typedef khronos_int64_t khronos_stime_nanoseconds_t; 269*8975f5c5SAndroid Build Coastguard Worker #endif 270*8975f5c5SAndroid Build Coastguard Worker 271*8975f5c5SAndroid Build Coastguard Worker /* 272*8975f5c5SAndroid Build Coastguard Worker * Dummy value used to pad enum types to 32 bits. 273*8975f5c5SAndroid Build Coastguard Worker */ 274*8975f5c5SAndroid Build Coastguard Worker #ifndef KHRONOS_MAX_ENUM 275*8975f5c5SAndroid Build Coastguard Worker #define KHRONOS_MAX_ENUM 0x7FFFFFFF 276*8975f5c5SAndroid Build Coastguard Worker #endif 277*8975f5c5SAndroid Build Coastguard Worker 278*8975f5c5SAndroid Build Coastguard Worker /* 279*8975f5c5SAndroid Build Coastguard Worker * Enumerated boolean type 280*8975f5c5SAndroid Build Coastguard Worker * 281*8975f5c5SAndroid Build Coastguard Worker * Values other than zero should be considered to be true. Therefore 282*8975f5c5SAndroid Build Coastguard Worker * comparisons should not be made against KHRONOS_TRUE. 283*8975f5c5SAndroid Build Coastguard Worker */ 284*8975f5c5SAndroid Build Coastguard Worker typedef enum { 285*8975f5c5SAndroid Build Coastguard Worker KHRONOS_FALSE = 0, 286*8975f5c5SAndroid Build Coastguard Worker KHRONOS_TRUE = 1, 287*8975f5c5SAndroid Build Coastguard Worker KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM 288*8975f5c5SAndroid Build Coastguard Worker } khronos_boolean_enum_t; 289*8975f5c5SAndroid Build Coastguard Worker 290*8975f5c5SAndroid Build Coastguard Worker #endif /* __khrplatform_h_ */ 291