102f4aeb0Sopenharmony_ci#ifndef __khrplatform_h_
202f4aeb0Sopenharmony_ci#define __khrplatform_h_
302f4aeb0Sopenharmony_ci
402f4aeb0Sopenharmony_ci/*
502f4aeb0Sopenharmony_ci** Copyright (c) 2008-2018 The Khronos Group Inc.
602f4aeb0Sopenharmony_ci**
702f4aeb0Sopenharmony_ci** Permission is hereby granted, free of charge, to any person obtaining a
802f4aeb0Sopenharmony_ci** copy of this software and/or associated documentation files (the
902f4aeb0Sopenharmony_ci** "Materials"), to deal in the Materials without restriction, including
1002f4aeb0Sopenharmony_ci** without limitation the rights to use, copy, modify, merge, publish,
1102f4aeb0Sopenharmony_ci** distribute, sublicense, and/or sell copies of the Materials, and to
1202f4aeb0Sopenharmony_ci** permit persons to whom the Materials are furnished to do so, subject to
1302f4aeb0Sopenharmony_ci** the following conditions:
1402f4aeb0Sopenharmony_ci**
1502f4aeb0Sopenharmony_ci** The above copyright notice and this permission notice shall be included
1602f4aeb0Sopenharmony_ci** in all copies or substantial portions of the Materials.
1702f4aeb0Sopenharmony_ci**
1802f4aeb0Sopenharmony_ci** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1902f4aeb0Sopenharmony_ci** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2002f4aeb0Sopenharmony_ci** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
2102f4aeb0Sopenharmony_ci** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
2202f4aeb0Sopenharmony_ci** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2302f4aeb0Sopenharmony_ci** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2402f4aeb0Sopenharmony_ci** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
2502f4aeb0Sopenharmony_ci*/
2602f4aeb0Sopenharmony_ci
2702f4aeb0Sopenharmony_ci/* Khronos platform-specific types and definitions.
2802f4aeb0Sopenharmony_ci *
2902f4aeb0Sopenharmony_ci * The master copy of khrplatform.h is maintained in the Khronos EGL
3002f4aeb0Sopenharmony_ci * Registry repository at https://github.com/KhronosGroup/EGL-Registry
3102f4aeb0Sopenharmony_ci * The last semantic modification to khrplatform.h was at commit ID:
3202f4aeb0Sopenharmony_ci *      67a3e0864c2d75ea5287b9f3d2eb74a745936692
3302f4aeb0Sopenharmony_ci *
3402f4aeb0Sopenharmony_ci * Adopters may modify this file to suit their platform. Adopters are
3502f4aeb0Sopenharmony_ci * encouraged to submit platform specific modifications to the Khronos
3602f4aeb0Sopenharmony_ci * group so that they can be included in future versions of this file.
3702f4aeb0Sopenharmony_ci * Please submit changes by filing pull requests or issues on
3802f4aeb0Sopenharmony_ci * the EGL Registry repository linked above.
3902f4aeb0Sopenharmony_ci *
4002f4aeb0Sopenharmony_ci *
4102f4aeb0Sopenharmony_ci * See the Implementer's Guidelines for information about where this file
4202f4aeb0Sopenharmony_ci * should be located on your system and for more details of its use:
4302f4aeb0Sopenharmony_ci *    http://www.khronos.org/registry/implementers_guide.pdf
4402f4aeb0Sopenharmony_ci *
4502f4aeb0Sopenharmony_ci * This file should be included as
4602f4aeb0Sopenharmony_ci *        #include <KHR/khrplatform.h>
4702f4aeb0Sopenharmony_ci * by Khronos client API header files that use its types and defines.
4802f4aeb0Sopenharmony_ci *
4902f4aeb0Sopenharmony_ci * The types in khrplatform.h should only be used to define API-specific types.
5002f4aeb0Sopenharmony_ci *
5102f4aeb0Sopenharmony_ci * Types defined in khrplatform.h:
5202f4aeb0Sopenharmony_ci *    khronos_int8_t              signed   8  bit
5302f4aeb0Sopenharmony_ci *    khronos_uint8_t             unsigned 8  bit
5402f4aeb0Sopenharmony_ci *    khronos_int16_t             signed   16 bit
5502f4aeb0Sopenharmony_ci *    khronos_uint16_t            unsigned 16 bit
5602f4aeb0Sopenharmony_ci *    khronos_int32_t             signed   32 bit
5702f4aeb0Sopenharmony_ci *    khronos_uint32_t            unsigned 32 bit
5802f4aeb0Sopenharmony_ci *    khronos_int64_t             signed   64 bit
5902f4aeb0Sopenharmony_ci *    khronos_uint64_t            unsigned 64 bit
6002f4aeb0Sopenharmony_ci *    khronos_intptr_t            signed   same number of bits as a pointer
6102f4aeb0Sopenharmony_ci *    khronos_uintptr_t           unsigned same number of bits as a pointer
6202f4aeb0Sopenharmony_ci *    khronos_ssize_t             signed   size
6302f4aeb0Sopenharmony_ci *    khronos_usize_t             unsigned size
6402f4aeb0Sopenharmony_ci *    khronos_float_t             signed   32 bit floating point
6502f4aeb0Sopenharmony_ci *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
6602f4aeb0Sopenharmony_ci *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
6702f4aeb0Sopenharmony_ci *                                         nanoseconds
6802f4aeb0Sopenharmony_ci *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
6902f4aeb0Sopenharmony_ci *    khronos_boolean_enum_t      enumerated boolean type. This should
7002f4aeb0Sopenharmony_ci *      only be used as a base type when a client API's boolean type is
7102f4aeb0Sopenharmony_ci *      an enum. Client APIs which use an integer or other type for
7202f4aeb0Sopenharmony_ci *      booleans cannot use this as the base type for their boolean.
7302f4aeb0Sopenharmony_ci *
7402f4aeb0Sopenharmony_ci * Tokens defined in khrplatform.h:
7502f4aeb0Sopenharmony_ci *
7602f4aeb0Sopenharmony_ci *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
7702f4aeb0Sopenharmony_ci *
7802f4aeb0Sopenharmony_ci *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
7902f4aeb0Sopenharmony_ci *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
8002f4aeb0Sopenharmony_ci *
8102f4aeb0Sopenharmony_ci * Calling convention macros defined in this file:
8202f4aeb0Sopenharmony_ci *    KHRONOS_APICALL
8302f4aeb0Sopenharmony_ci *    KHRONOS_APIENTRY
8402f4aeb0Sopenharmony_ci *    KHRONOS_APIATTRIBUTES
8502f4aeb0Sopenharmony_ci *
8602f4aeb0Sopenharmony_ci * These may be used in function prototypes as:
8702f4aeb0Sopenharmony_ci *
8802f4aeb0Sopenharmony_ci *      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
8902f4aeb0Sopenharmony_ci *                                  int arg1,
9002f4aeb0Sopenharmony_ci *                                  int arg2) KHRONOS_APIATTRIBUTES;
9102f4aeb0Sopenharmony_ci */
9202f4aeb0Sopenharmony_ci
9302f4aeb0Sopenharmony_ci#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
9402f4aeb0Sopenharmony_ci#   define KHRONOS_STATIC 1
9502f4aeb0Sopenharmony_ci#endif
9602f4aeb0Sopenharmony_ci
9702f4aeb0Sopenharmony_ci/*-------------------------------------------------------------------------
9802f4aeb0Sopenharmony_ci * Definition of KHRONOS_APICALL
9902f4aeb0Sopenharmony_ci *-------------------------------------------------------------------------
10002f4aeb0Sopenharmony_ci * This precedes the return type of the function in the function prototype.
10102f4aeb0Sopenharmony_ci */
10202f4aeb0Sopenharmony_ci#if defined(KHRONOS_STATIC)
10302f4aeb0Sopenharmony_ci    /* If the preprocessor constant KHRONOS_STATIC is defined, make the
10402f4aeb0Sopenharmony_ci     * header compatible with static linking. */
10502f4aeb0Sopenharmony_ci#   define KHRONOS_APICALL
10602f4aeb0Sopenharmony_ci#elif defined(_WIN32)
10702f4aeb0Sopenharmony_ci#   define KHRONOS_APICALL __declspec(dllimport)
10802f4aeb0Sopenharmony_ci#elif defined (__SYMBIAN32__)
10902f4aeb0Sopenharmony_ci#   define KHRONOS_APICALL IMPORT_C
11002f4aeb0Sopenharmony_ci#elif defined(__ANDROID__)
11102f4aeb0Sopenharmony_ci#   define KHRONOS_APICALL __attribute__((visibility("default")))
11202f4aeb0Sopenharmony_ci#else
11302f4aeb0Sopenharmony_ci#   define KHRONOS_APICALL
11402f4aeb0Sopenharmony_ci#endif
11502f4aeb0Sopenharmony_ci
11602f4aeb0Sopenharmony_ci/*-------------------------------------------------------------------------
11702f4aeb0Sopenharmony_ci * Definition of KHRONOS_APIENTRY
11802f4aeb0Sopenharmony_ci *-------------------------------------------------------------------------
11902f4aeb0Sopenharmony_ci * This follows the return type of the function  and precedes the function
12002f4aeb0Sopenharmony_ci * name in the function prototype.
12102f4aeb0Sopenharmony_ci */
12202f4aeb0Sopenharmony_ci#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
12302f4aeb0Sopenharmony_ci    /* Win32 but not WinCE */
12402f4aeb0Sopenharmony_ci#   define KHRONOS_APIENTRY __stdcall
12502f4aeb0Sopenharmony_ci#else
12602f4aeb0Sopenharmony_ci#   define KHRONOS_APIENTRY
12702f4aeb0Sopenharmony_ci#endif
12802f4aeb0Sopenharmony_ci
12902f4aeb0Sopenharmony_ci/*-------------------------------------------------------------------------
13002f4aeb0Sopenharmony_ci * Definition of KHRONOS_APIATTRIBUTES
13102f4aeb0Sopenharmony_ci *-------------------------------------------------------------------------
13202f4aeb0Sopenharmony_ci * This follows the closing parenthesis of the function prototype arguments.
13302f4aeb0Sopenharmony_ci */
13402f4aeb0Sopenharmony_ci#if defined (__ARMCC_2__)
13502f4aeb0Sopenharmony_ci#define KHRONOS_APIATTRIBUTES __softfp
13602f4aeb0Sopenharmony_ci#else
13702f4aeb0Sopenharmony_ci#define KHRONOS_APIATTRIBUTES
13802f4aeb0Sopenharmony_ci#endif
13902f4aeb0Sopenharmony_ci
14002f4aeb0Sopenharmony_ci/*-------------------------------------------------------------------------
14102f4aeb0Sopenharmony_ci * basic type definitions
14202f4aeb0Sopenharmony_ci *-----------------------------------------------------------------------*/
14302f4aeb0Sopenharmony_ci#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
14402f4aeb0Sopenharmony_ci
14502f4aeb0Sopenharmony_ci
14602f4aeb0Sopenharmony_ci/*
14702f4aeb0Sopenharmony_ci * Using <stdint.h>
14802f4aeb0Sopenharmony_ci */
14902f4aeb0Sopenharmony_ci#include <stdint.h>
15002f4aeb0Sopenharmony_citypedef int32_t                 khronos_int32_t;
15102f4aeb0Sopenharmony_citypedef uint32_t                khronos_uint32_t;
15202f4aeb0Sopenharmony_citypedef int64_t                 khronos_int64_t;
15302f4aeb0Sopenharmony_citypedef uint64_t                khronos_uint64_t;
15402f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   1
15502f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   1
15602f4aeb0Sopenharmony_ci/*
15702f4aeb0Sopenharmony_ci * To support platform where unsigned long cannot be used interchangeably with
15802f4aeb0Sopenharmony_ci * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
15902f4aeb0Sopenharmony_ci * Ideally, we could just use (u)intptr_t everywhere, but this could result in
16002f4aeb0Sopenharmony_ci * ABI breakage if khronos_uintptr_t is changed from unsigned long to
16102f4aeb0Sopenharmony_ci * unsigned long long or similar (this results in different C++ name mangling).
16202f4aeb0Sopenharmony_ci * To avoid changes for existing platforms, we restrict usage of intptr_t to
16302f4aeb0Sopenharmony_ci * platforms where the size of a pointer is larger than the size of long.
16402f4aeb0Sopenharmony_ci */
16502f4aeb0Sopenharmony_ci#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
16602f4aeb0Sopenharmony_ci#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
16702f4aeb0Sopenharmony_ci#define KHRONOS_USE_INTPTR_T
16802f4aeb0Sopenharmony_ci#endif
16902f4aeb0Sopenharmony_ci#endif
17002f4aeb0Sopenharmony_ci
17102f4aeb0Sopenharmony_ci#elif defined(__VMS ) || defined(__sgi)
17202f4aeb0Sopenharmony_ci
17302f4aeb0Sopenharmony_ci/*
17402f4aeb0Sopenharmony_ci * Using <inttypes.h>
17502f4aeb0Sopenharmony_ci */
17602f4aeb0Sopenharmony_ci#include <inttypes.h>
17702f4aeb0Sopenharmony_citypedef int32_t                 khronos_int32_t;
17802f4aeb0Sopenharmony_citypedef uint32_t                khronos_uint32_t;
17902f4aeb0Sopenharmony_citypedef int64_t                 khronos_int64_t;
18002f4aeb0Sopenharmony_citypedef uint64_t                khronos_uint64_t;
18102f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   1
18202f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   1
18302f4aeb0Sopenharmony_ci
18402f4aeb0Sopenharmony_ci#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
18502f4aeb0Sopenharmony_ci
18602f4aeb0Sopenharmony_ci/*
18702f4aeb0Sopenharmony_ci * Win32
18802f4aeb0Sopenharmony_ci */
18902f4aeb0Sopenharmony_citypedef __int32                 khronos_int32_t;
19002f4aeb0Sopenharmony_citypedef unsigned __int32        khronos_uint32_t;
19102f4aeb0Sopenharmony_citypedef __int64                 khronos_int64_t;
19202f4aeb0Sopenharmony_citypedef unsigned __int64        khronos_uint64_t;
19302f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   1
19402f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   1
19502f4aeb0Sopenharmony_ci
19602f4aeb0Sopenharmony_ci#elif defined(__sun__) || defined(__digital__)
19702f4aeb0Sopenharmony_ci
19802f4aeb0Sopenharmony_ci/*
19902f4aeb0Sopenharmony_ci * Sun or Digital
20002f4aeb0Sopenharmony_ci */
20102f4aeb0Sopenharmony_citypedef int                     khronos_int32_t;
20202f4aeb0Sopenharmony_citypedef unsigned int            khronos_uint32_t;
20302f4aeb0Sopenharmony_ci#if defined(__arch64__) || defined(_LP64)
20402f4aeb0Sopenharmony_citypedef long int                khronos_int64_t;
20502f4aeb0Sopenharmony_citypedef unsigned long int       khronos_uint64_t;
20602f4aeb0Sopenharmony_ci#else
20702f4aeb0Sopenharmony_citypedef long long int           khronos_int64_t;
20802f4aeb0Sopenharmony_citypedef unsigned long long int  khronos_uint64_t;
20902f4aeb0Sopenharmony_ci#endif /* __arch64__ */
21002f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   1
21102f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   1
21202f4aeb0Sopenharmony_ci
21302f4aeb0Sopenharmony_ci#elif 0
21402f4aeb0Sopenharmony_ci
21502f4aeb0Sopenharmony_ci/*
21602f4aeb0Sopenharmony_ci * Hypothetical platform with no float or int64 support
21702f4aeb0Sopenharmony_ci */
21802f4aeb0Sopenharmony_citypedef int                     khronos_int32_t;
21902f4aeb0Sopenharmony_citypedef unsigned int            khronos_uint32_t;
22002f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   0
22102f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   0
22202f4aeb0Sopenharmony_ci
22302f4aeb0Sopenharmony_ci#else
22402f4aeb0Sopenharmony_ci
22502f4aeb0Sopenharmony_ci/*
22602f4aeb0Sopenharmony_ci * Generic fallback
22702f4aeb0Sopenharmony_ci */
22802f4aeb0Sopenharmony_ci#include <stdint.h>
22902f4aeb0Sopenharmony_citypedef int32_t                 khronos_int32_t;
23002f4aeb0Sopenharmony_citypedef uint32_t                khronos_uint32_t;
23102f4aeb0Sopenharmony_citypedef int64_t                 khronos_int64_t;
23202f4aeb0Sopenharmony_citypedef uint64_t                khronos_uint64_t;
23302f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_INT64   1
23402f4aeb0Sopenharmony_ci#define KHRONOS_SUPPORT_FLOAT   1
23502f4aeb0Sopenharmony_ci
23602f4aeb0Sopenharmony_ci#endif
23702f4aeb0Sopenharmony_ci
23802f4aeb0Sopenharmony_ci
23902f4aeb0Sopenharmony_ci/*
24002f4aeb0Sopenharmony_ci * Types that are (so far) the same on all platforms
24102f4aeb0Sopenharmony_ci */
24202f4aeb0Sopenharmony_citypedef signed   char          khronos_int8_t;
24302f4aeb0Sopenharmony_citypedef unsigned char          khronos_uint8_t;
24402f4aeb0Sopenharmony_citypedef signed   short int     khronos_int16_t;
24502f4aeb0Sopenharmony_citypedef unsigned short int     khronos_uint16_t;
24602f4aeb0Sopenharmony_ci
24702f4aeb0Sopenharmony_ci/*
24802f4aeb0Sopenharmony_ci * Types that differ between LLP64 and LP64 architectures - in LLP64,
24902f4aeb0Sopenharmony_ci * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
25002f4aeb0Sopenharmony_ci * to be the only LLP64 architecture in current use.
25102f4aeb0Sopenharmony_ci */
25202f4aeb0Sopenharmony_ci#ifdef KHRONOS_USE_INTPTR_T
25302f4aeb0Sopenharmony_citypedef intptr_t               khronos_intptr_t;
25402f4aeb0Sopenharmony_citypedef uintptr_t              khronos_uintptr_t;
25502f4aeb0Sopenharmony_ci#elif defined(_WIN64)
25602f4aeb0Sopenharmony_citypedef signed   long long int khronos_intptr_t;
25702f4aeb0Sopenharmony_citypedef unsigned long long int khronos_uintptr_t;
25802f4aeb0Sopenharmony_ci#else
25902f4aeb0Sopenharmony_citypedef signed   long  int     khronos_intptr_t;
26002f4aeb0Sopenharmony_citypedef unsigned long  int     khronos_uintptr_t;
26102f4aeb0Sopenharmony_ci#endif
26202f4aeb0Sopenharmony_ci
26302f4aeb0Sopenharmony_ci#if defined(_WIN64)
26402f4aeb0Sopenharmony_citypedef signed   long long int khronos_ssize_t;
26502f4aeb0Sopenharmony_citypedef unsigned long long int khronos_usize_t;
26602f4aeb0Sopenharmony_ci#else
26702f4aeb0Sopenharmony_citypedef signed   long  int     khronos_ssize_t;
26802f4aeb0Sopenharmony_citypedef unsigned long  int     khronos_usize_t;
26902f4aeb0Sopenharmony_ci#endif
27002f4aeb0Sopenharmony_ci
27102f4aeb0Sopenharmony_ci#if KHRONOS_SUPPORT_FLOAT
27202f4aeb0Sopenharmony_ci/*
27302f4aeb0Sopenharmony_ci * Float type
27402f4aeb0Sopenharmony_ci */
27502f4aeb0Sopenharmony_citypedef          float         khronos_float_t;
27602f4aeb0Sopenharmony_ci#endif
27702f4aeb0Sopenharmony_ci
27802f4aeb0Sopenharmony_ci#if KHRONOS_SUPPORT_INT64
27902f4aeb0Sopenharmony_ci/* Time types
28002f4aeb0Sopenharmony_ci *
28102f4aeb0Sopenharmony_ci * These types can be used to represent a time interval in nanoseconds or
28202f4aeb0Sopenharmony_ci * an absolute Unadjusted System Time.  Unadjusted System Time is the number
28302f4aeb0Sopenharmony_ci * of nanoseconds since some arbitrary system event (e.g. since the last
28402f4aeb0Sopenharmony_ci * time the system booted).  The Unadjusted System Time is an unsigned
28502f4aeb0Sopenharmony_ci * 64 bit value that wraps back to 0 every 584 years.  Time intervals
28602f4aeb0Sopenharmony_ci * may be either signed or unsigned.
28702f4aeb0Sopenharmony_ci */
28802f4aeb0Sopenharmony_citypedef khronos_uint64_t       khronos_utime_nanoseconds_t;
28902f4aeb0Sopenharmony_citypedef khronos_int64_t        khronos_stime_nanoseconds_t;
29002f4aeb0Sopenharmony_ci#endif
29102f4aeb0Sopenharmony_ci
29202f4aeb0Sopenharmony_ci/*
29302f4aeb0Sopenharmony_ci * Dummy value used to pad enum types to 32 bits.
29402f4aeb0Sopenharmony_ci */
29502f4aeb0Sopenharmony_ci#ifndef KHRONOS_MAX_ENUM
29602f4aeb0Sopenharmony_ci#define KHRONOS_MAX_ENUM 0x7FFFFFFF
29702f4aeb0Sopenharmony_ci#endif
29802f4aeb0Sopenharmony_ci
29902f4aeb0Sopenharmony_ci/*
30002f4aeb0Sopenharmony_ci * Enumerated boolean type
30102f4aeb0Sopenharmony_ci *
30202f4aeb0Sopenharmony_ci * Values other than zero should be considered to be true.  Therefore
30302f4aeb0Sopenharmony_ci * comparisons should not be made against KHRONOS_TRUE.
30402f4aeb0Sopenharmony_ci */
30502f4aeb0Sopenharmony_citypedef enum {
30602f4aeb0Sopenharmony_ci    KHRONOS_FALSE = 0,
30702f4aeb0Sopenharmony_ci    KHRONOS_TRUE  = 1,
30802f4aeb0Sopenharmony_ci    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
30902f4aeb0Sopenharmony_ci} khronos_boolean_enum_t;
31002f4aeb0Sopenharmony_ci
31102f4aeb0Sopenharmony_ci#endif /* __khrplatform_h_ */
312