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