• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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