DPC++ Runtime
Runtime libraries for oneAPI DPC++
pointers.hpp
Go to the documentation of this file.
1 //==------------ pointers.hpp - SYCL pointers classes ----------------------==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #pragma once
10 
11 #include <sycl/access/access.hpp> // for decorated, address_space
12 
13 namespace sycl {
14 inline namespace _V1 {
15 
16 template <typename ElementType, access::address_space Space,
17  access::decorated DecorateAddress>
18 class multi_ptr;
19 // Template specialization aliases for different pointer address spaces
20 
21 template <typename ElementType,
22  access::decorated IsDecorated = access::decorated::legacy>
23 using generic_ptr =
25 
26 template <typename ElementType,
27  access::decorated IsDecorated = access::decorated::legacy>
28 using global_ptr =
30 
31 template <typename ElementType,
32  access::decorated IsDecorated = access::decorated::legacy>
33 using local_ptr =
35 
36 template <typename ElementType>
37 using constant_ptr =
38  multi_ptr<ElementType, access::address_space::constant_space,
39  access::decorated::legacy>;
40 
41 template <typename ElementType,
42  access::decorated IsDecorated = access::decorated::legacy>
43 using private_ptr =
45 
46 // Template specialization aliases for different pointer address spaces.
47 // The interface exposes non-decorated pointer while keeping the
48 // address space information internally.
49 
50 template <typename ElementType>
54 
55 template <typename ElementType>
58 
59 template <typename ElementType>
63 
64 // Template specialization aliases for different pointer address spaces.
65 // The interface exposes decorated pointer.
66 
67 template <typename ElementType>
71 
72 template <typename ElementType>
76 
77 template <typename ElementType>
81 
82 } // namespace _V1
83 } // namespace sycl
Definition: access.hpp:18