1// Copyright (c) 2018 The Khronos Group Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and/or associated documentation files (the "Materials"),
5// to deal in the Materials without restriction, including without limitation
6// the rights to use, copy, modify, merge, publish, distribute, sublicense,
7// and/or sell copies of the Materials, and to permit persons to whom the
8// Materials are furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Materials.
12//
13// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16//
17// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23// IN THE MATERIALS.
24
25#ifndef SPIRV_EXTINST_OpenCLDebugInfo100_H_
26#define SPIRV_EXTINST_OpenCLDebugInfo100_H_
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32enum { OpenCLDebugInfo100Version = 200, OpenCLDebugInfo100Version_BitWidthPadding = 0x7fffffff };
33enum { OpenCLDebugInfo100Revision = 2, OpenCLDebugInfo100Revision_BitWidthPadding = 0x7fffffff };
34
35enum OpenCLDebugInfo100Instructions {
36 OpenCLDebugInfo100DebugInfoNone = 0,
37 OpenCLDebugInfo100DebugCompilationUnit = 1,
38 OpenCLDebugInfo100DebugTypeBasic = 2,
39 OpenCLDebugInfo100DebugTypePointer = 3,
40 OpenCLDebugInfo100DebugTypeQualifier = 4,
41 OpenCLDebugInfo100DebugTypeArray = 5,
42 OpenCLDebugInfo100DebugTypeVector = 6,
43 OpenCLDebugInfo100DebugTypedef = 7,
44 OpenCLDebugInfo100DebugTypeFunction = 8,
45 OpenCLDebugInfo100DebugTypeEnum = 9,
46 OpenCLDebugInfo100DebugTypeComposite = 10,
47 OpenCLDebugInfo100DebugTypeMember = 11,
48 OpenCLDebugInfo100DebugTypeInheritance = 12,
49 OpenCLDebugInfo100DebugTypePtrToMember = 13,
50 OpenCLDebugInfo100DebugTypeTemplate = 14,
51 OpenCLDebugInfo100DebugTypeTemplateParameter = 15,
52 OpenCLDebugInfo100DebugTypeTemplateTemplateParameter = 16,
53 OpenCLDebugInfo100DebugTypeTemplateParameterPack = 17,
54 OpenCLDebugInfo100DebugGlobalVariable = 18,
55 OpenCLDebugInfo100DebugFunctionDeclaration = 19,
56 OpenCLDebugInfo100DebugFunction = 20,
57 OpenCLDebugInfo100DebugLexicalBlock = 21,
58 OpenCLDebugInfo100DebugLexicalBlockDiscriminator = 22,
59 OpenCLDebugInfo100DebugScope = 23,
60 OpenCLDebugInfo100DebugNoScope = 24,
61 OpenCLDebugInfo100DebugInlinedAt = 25,
62 OpenCLDebugInfo100DebugLocalVariable = 26,
63 OpenCLDebugInfo100DebugInlinedVariable = 27,
64 OpenCLDebugInfo100DebugDeclare = 28,
65 OpenCLDebugInfo100DebugValue = 29,
66 OpenCLDebugInfo100DebugOperation = 30,
67 OpenCLDebugInfo100DebugExpression = 31,
68 OpenCLDebugInfo100DebugMacroDef = 32,
69 OpenCLDebugInfo100DebugMacroUndef = 33,
70 OpenCLDebugInfo100DebugImportedEntity = 34,
71 OpenCLDebugInfo100DebugSource = 35,
72 OpenCLDebugInfo100InstructionsMax = 0x7ffffff
73};
74
75
76enum OpenCLDebugInfo100DebugInfoFlags {
77 OpenCLDebugInfo100FlagIsProtected = 0x01,
78 OpenCLDebugInfo100FlagIsPrivate = 0x02,
79 OpenCLDebugInfo100FlagIsPublic = 0x03,
80 OpenCLDebugInfo100FlagIsLocal = 0x04,
81 OpenCLDebugInfo100FlagIsDefinition = 0x08,
82 OpenCLDebugInfo100FlagFwdDecl = 0x10,
83 OpenCLDebugInfo100FlagArtificial = 0x20,
84 OpenCLDebugInfo100FlagExplicit = 0x40,
85 OpenCLDebugInfo100FlagPrototyped = 0x80,
86 OpenCLDebugInfo100FlagObjectPointer = 0x100,
87 OpenCLDebugInfo100FlagStaticMember = 0x200,
88 OpenCLDebugInfo100FlagIndirectVariable = 0x400,
89 OpenCLDebugInfo100FlagLValueReference = 0x800,
90 OpenCLDebugInfo100FlagRValueReference = 0x1000,
91 OpenCLDebugInfo100FlagIsOptimized = 0x2000,
92 OpenCLDebugInfo100FlagIsEnumClass = 0x4000,
93 OpenCLDebugInfo100FlagTypePassByValue = 0x8000,
94 OpenCLDebugInfo100FlagTypePassByReference = 0x10000,
95 OpenCLDebugInfo100DebugInfoFlagsMax = 0x7ffffff
96};
97
98enum OpenCLDebugInfo100DebugBaseTypeAttributeEncoding {
99 OpenCLDebugInfo100Unspecified = 0,
100 OpenCLDebugInfo100Address = 1,
101 OpenCLDebugInfo100Boolean = 2,
102 OpenCLDebugInfo100Float = 3,
103 OpenCLDebugInfo100Signed = 4,
104 OpenCLDebugInfo100SignedChar = 5,
105 OpenCLDebugInfo100Unsigned = 6,
106 OpenCLDebugInfo100UnsignedChar = 7,
107 OpenCLDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7ffffff
108};
109
110enum OpenCLDebugInfo100DebugCompositeType {
111 OpenCLDebugInfo100Class = 0,
112 OpenCLDebugInfo100Structure = 1,
113 OpenCLDebugInfo100Union = 2,
114 OpenCLDebugInfo100DebugCompositeTypeMax = 0x7ffffff
115};
116
117enum OpenCLDebugInfo100DebugTypeQualifier {
118 OpenCLDebugInfo100ConstType = 0,
119 OpenCLDebugInfo100VolatileType = 1,
120 OpenCLDebugInfo100RestrictType = 2,
121 OpenCLDebugInfo100AtomicType = 3,
122 OpenCLDebugInfo100DebugTypeQualifierMax = 0x7ffffff
123};
124
125enum OpenCLDebugInfo100DebugOperation {
126 OpenCLDebugInfo100Deref = 0,
127 OpenCLDebugInfo100Plus = 1,
128 OpenCLDebugInfo100Minus = 2,
129 OpenCLDebugInfo100PlusUconst = 3,
130 OpenCLDebugInfo100BitPiece = 4,
131 OpenCLDebugInfo100Swap = 5,
132 OpenCLDebugInfo100Xderef = 6,
133 OpenCLDebugInfo100StackValue = 7,
134 OpenCLDebugInfo100Constu = 8,
135 OpenCLDebugInfo100Fragment = 9,
136 OpenCLDebugInfo100DebugOperationMax = 0x7ffffff
137};
138
139enum OpenCLDebugInfo100DebugImportedEntity {
140 OpenCLDebugInfo100ImportedModule = 0,
141 OpenCLDebugInfo100ImportedDeclaration = 1,
142 OpenCLDebugInfo100DebugImportedEntityMax = 0x7ffffff
143};
144
145
146#ifdef __cplusplus
147}
148#endif
149
150#endif // SPIRV_EXTINST_OpenCLDebugInfo100_H_