180d59932Sopenharmony_ci/*
280d59932Sopenharmony_ci * Copyright (c) 2020 The Khronos Group Inc.
380d59932Sopenharmony_ci *
480d59932Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
580d59932Sopenharmony_ci * you may not use this file except in compliance with the License.
680d59932Sopenharmony_ci * You may obtain a copy of the License at
780d59932Sopenharmony_ci *
880d59932Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
980d59932Sopenharmony_ci *
1080d59932Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1180d59932Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1280d59932Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1380d59932Sopenharmony_ci * See the License for the specific language governing permissions and
1480d59932Sopenharmony_ci * limitations under the License.
1580d59932Sopenharmony_ci *
1680d59932Sopenharmony_ci * OpenCL is a trademark of Apple Inc. used under license by Khronos.
1780d59932Sopenharmony_ci */
1880d59932Sopenharmony_ci
1980d59932Sopenharmony_ci#ifndef OPENCL_CL_LAYER_H
2080d59932Sopenharmony_ci#define OPENCL_CL_LAYER_H
2180d59932Sopenharmony_ci
2280d59932Sopenharmony_ci#include <CL/cl_icd.h>
2380d59932Sopenharmony_ci
2480d59932Sopenharmony_ci#ifdef __cplusplus
2580d59932Sopenharmony_ciextern "C" {
2680d59932Sopenharmony_ci#endif
2780d59932Sopenharmony_ci
2880d59932Sopenharmony_citypedef cl_uint cl_layer_info;
2980d59932Sopenharmony_citypedef cl_uint cl_layer_api_version;
3080d59932Sopenharmony_ci#define CL_LAYER_API_VERSION 0x4240
3180d59932Sopenharmony_ci#define CL_LAYER_API_VERSION_100 100
3280d59932Sopenharmony_ci
3380d59932Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
3480d59932Sopenharmony_ciclGetLayerInfo(cl_layer_info  param_name,
3580d59932Sopenharmony_ci               size_t         param_value_size,
3680d59932Sopenharmony_ci               void          *param_value,
3780d59932Sopenharmony_ci               size_t        *param_value_size_ret);
3880d59932Sopenharmony_ci
3980d59932Sopenharmony_citypedef cl_int
4080d59932Sopenharmony_ci(CL_API_CALL *pfn_clGetLayerInfo)(cl_layer_info  param_name,
4180d59932Sopenharmony_ci                                  size_t         param_value_size,
4280d59932Sopenharmony_ci                                  void          *param_value,
4380d59932Sopenharmony_ci                                  size_t        *param_value_size_ret);
4480d59932Sopenharmony_ci
4580d59932Sopenharmony_ciextern CL_API_ENTRY cl_int CL_API_CALL
4680d59932Sopenharmony_ciclInitLayer(cl_uint                 num_entries,
4780d59932Sopenharmony_ci            const cl_icd_dispatch  *target_dispatch,
4880d59932Sopenharmony_ci            cl_uint                *num_entries_ret,
4980d59932Sopenharmony_ci            const cl_icd_dispatch **layer_dispatch_ret);
5080d59932Sopenharmony_ci
5180d59932Sopenharmony_citypedef cl_int
5280d59932Sopenharmony_ci(CL_API_CALL *pfn_clInitLayer)(cl_uint                 num_entries,
5380d59932Sopenharmony_ci                               const cl_icd_dispatch  *target_dispatch,
5480d59932Sopenharmony_ci                               cl_uint                *num_entries_ret,
5580d59932Sopenharmony_ci                               const cl_icd_dispatch **layer_dispatch_ret);
5680d59932Sopenharmony_ci
5780d59932Sopenharmony_ci#ifdef __cplusplus
5880d59932Sopenharmony_ci}
5980d59932Sopenharmony_ci#endif
6080d59932Sopenharmony_ci
6180d59932Sopenharmony_ci#endif /* OPENCL_CL_LAYER_H */
62