xref: /libCEED/rust/libceed-sys/c-src/backends/sycl/ceed-sycl-compile.hpp (revision bd882c8a454763a096666645dc9a6229d5263694)
1*bd882c8aSJames Wright // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2*bd882c8aSJames Wright // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3*bd882c8aSJames Wright //
4*bd882c8aSJames Wright // SPDX-License-Identifier: BSD-2-Clause
5*bd882c8aSJames Wright //
6*bd882c8aSJames Wright // This file is part of CEED:  http://github.com/ceed
7*bd882c8aSJames Wright 
8*bd882c8aSJames Wright #ifndef _ceed_sycl_compile_hpp
9*bd882c8aSJames Wright #define _ceed_sycl_compile_hpp
10*bd882c8aSJames Wright 
11*bd882c8aSJames Wright #include <ceed/backend.h>
12*bd882c8aSJames Wright #include <ceed/ceed.h>
13*bd882c8aSJames Wright 
14*bd882c8aSJames Wright #include <map>
15*bd882c8aSJames Wright #include <sycl/sycl.hpp>
16*bd882c8aSJames Wright 
17*bd882c8aSJames Wright using SyclModule_t = sycl::kernel_bundle<sycl::bundle_state::executable>;
18*bd882c8aSJames Wright 
19*bd882c8aSJames Wright CEED_INTERN int CeedJitBuildModule_Sycl(Ceed ceed, const std::string &kernel_source, SyclModule_t **sycl_module,
20*bd882c8aSJames Wright                                         const std::map<std::string, CeedInt> &constants = {});
21*bd882c8aSJames Wright CEED_INTERN int CeedJitGetKernel_Sycl(Ceed ceed, const SyclModule_t *sycl_module, const std::string &kernel_name, sycl::kernel **sycl_kernel);
22*bd882c8aSJames Wright 
23*bd882c8aSJames Wright #endif  // _ceed_sycl_compile_h
24