xref: /aosp_15_r20/external/OpenCL-Headers/CL/cl_layer.h (revision 3cc257528f335c5672e46865a03b8ee020e5fe2d)
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