1 /******************************************************************************* 2 * Copyright (c) 2008-2023 The Khronos Group Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 ******************************************************************************/ 16 17 #ifndef OPENCL_CL_LAYER_H_ 18 #define OPENCL_CL_LAYER_H_ 19 20 /* 21 ** This header is generated from the Khronos OpenCL XML API Registry. 22 */ 23 24 #include <CL/cl_icd.h> 25 26 #include <CL/cl.h> 27 28 /* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ 29 #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) 30 #define CL_NO_EXTENSION_PROTOTYPES 31 #endif 32 33 /* CL_NO_EXTENSION_PROTOTYPES implies 34 CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and 35 CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ 36 #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 37 !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 38 #define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES 39 #endif 40 #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 41 !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 42 #define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES 43 #endif 44 45 #ifdef __cplusplus 46 extern "C" { 47 #endif 48 49 /*************************************************************** 50 * cl_loader_layers 51 ***************************************************************/ 52 #define cl_loader_layers 1 53 #define CL_LOADER_LAYERS_EXTENSION_NAME \ 54 "cl_loader_layers" 55 56 57 #define CL_LOADER_LAYERS_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0) 58 59 typedef cl_uint cl_layer_info; 60 typedef cl_uint cl_layer_api_version; 61 62 /* cl_layer_info */ 63 #define CL_LAYER_API_VERSION 0x4240 64 #define CL_LAYER_NAME 0x4241 65 66 /* Misc API enums */ 67 #define CL_LAYER_API_VERSION_100 100 68 69 70 typedef cl_int CL_API_CALL 71 clGetLayerInfo_t( 72 cl_layer_info param_name, 73 size_t param_value_size, 74 void* param_value, 75 size_t* param_value_size_ret); 76 77 typedef clGetLayerInfo_t * 78 clGetLayerInfo_fn ; 79 80 typedef cl_int CL_API_CALL 81 clInitLayer_t( 82 cl_uint num_entries, 83 const cl_icd_dispatch* target_dispatch, 84 cl_uint* num_entries_ret, 85 const cl_icd_dispatch** layer_dispatch_ret); 86 87 typedef clInitLayer_t * 88 clInitLayer_fn ; 89 90 /* 91 ** The function pointer typedefs prefixed with "pfn_" are provided for 92 ** compatibility with earlier versions of the headers. New code is 93 ** encouraged to use the function pointer typedefs that are suffixed with 94 ** "_fn" instead, for consistency. 95 */ 96 97 typedef clGetLayerInfo_t * 98 pfn_clGetLayerInfo ; 99 100 typedef clInitLayer_t * 101 pfn_clInitLayer ; 102 103 #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 104 105 extern CL_API_ENTRY cl_int CL_API_CALL 106 clGetLayerInfo( 107 cl_layer_info param_name, 108 size_t param_value_size, 109 void* param_value, 110 size_t* param_value_size_ret) ; 111 112 extern CL_API_ENTRY cl_int CL_API_CALL 113 clInitLayer( 114 cl_uint num_entries, 115 const cl_icd_dispatch* target_dispatch, 116 cl_uint* num_entries_ret, 117 const cl_icd_dispatch** layer_dispatch_ret) ; 118 119 #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 120 121 #ifdef __cplusplus 122 } 123 #endif 124 125 #endif /* OPENCL_CL_LAYER_H_ */ 126