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_UNIFIED1_OpenCLDebugInfo100_H_
26 #define SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 enum {
33     OpenCLDebugInfo100Version = 200,
34     OpenCLDebugInfo100Version_BitWidthPadding = 0x7fffffff
35 };
36 enum {
37     OpenCLDebugInfo100Revision = 2,
38     OpenCLDebugInfo100Revision_BitWidthPadding = 0x7fffffff
39 };
40 
41 enum OpenCLDebugInfo100Instructions {
42     OpenCLDebugInfo100DebugInfoNone = 0,
43     OpenCLDebugInfo100DebugCompilationUnit = 1,
44     OpenCLDebugInfo100DebugTypeBasic = 2,
45     OpenCLDebugInfo100DebugTypePointer = 3,
46     OpenCLDebugInfo100DebugTypeQualifier = 4,
47     OpenCLDebugInfo100DebugTypeArray = 5,
48     OpenCLDebugInfo100DebugTypeVector = 6,
49     OpenCLDebugInfo100DebugTypedef = 7,
50     OpenCLDebugInfo100DebugTypeFunction = 8,
51     OpenCLDebugInfo100DebugTypeEnum = 9,
52     OpenCLDebugInfo100DebugTypeComposite = 10,
53     OpenCLDebugInfo100DebugTypeMember = 11,
54     OpenCLDebugInfo100DebugTypeInheritance = 12,
55     OpenCLDebugInfo100DebugTypePtrToMember = 13,
56     OpenCLDebugInfo100DebugTypeTemplate = 14,
57     OpenCLDebugInfo100DebugTypeTemplateParameter = 15,
58     OpenCLDebugInfo100DebugTypeTemplateTemplateParameter = 16,
59     OpenCLDebugInfo100DebugTypeTemplateParameterPack = 17,
60     OpenCLDebugInfo100DebugGlobalVariable = 18,
61     OpenCLDebugInfo100DebugFunctionDeclaration = 19,
62     OpenCLDebugInfo100DebugFunction = 20,
63     OpenCLDebugInfo100DebugLexicalBlock = 21,
64     OpenCLDebugInfo100DebugLexicalBlockDiscriminator = 22,
65     OpenCLDebugInfo100DebugScope = 23,
66     OpenCLDebugInfo100DebugNoScope = 24,
67     OpenCLDebugInfo100DebugInlinedAt = 25,
68     OpenCLDebugInfo100DebugLocalVariable = 26,
69     OpenCLDebugInfo100DebugInlinedVariable = 27,
70     OpenCLDebugInfo100DebugDeclare = 28,
71     OpenCLDebugInfo100DebugValue = 29,
72     OpenCLDebugInfo100DebugOperation = 30,
73     OpenCLDebugInfo100DebugExpression = 31,
74     OpenCLDebugInfo100DebugMacroDef = 32,
75     OpenCLDebugInfo100DebugMacroUndef = 33,
76     OpenCLDebugInfo100DebugImportedEntity = 34,
77     OpenCLDebugInfo100DebugSource = 35,
78     OpenCLDebugInfo100DebugModuleINTEL = 36,
79     OpenCLDebugInfo100InstructionsMax = 0x7fffffff
80 };
81 
82 
83 enum OpenCLDebugInfo100DebugInfoFlags {
84     OpenCLDebugInfo100None = 0x0000,
85     OpenCLDebugInfo100FlagIsProtected = 0x01,
86     OpenCLDebugInfo100FlagIsPrivate = 0x02,
87     OpenCLDebugInfo100FlagIsPublic = 0x03,
88     OpenCLDebugInfo100FlagIsLocal = 0x04,
89     OpenCLDebugInfo100FlagIsDefinition = 0x08,
90     OpenCLDebugInfo100FlagFwdDecl = 0x10,
91     OpenCLDebugInfo100FlagArtificial = 0x20,
92     OpenCLDebugInfo100FlagExplicit = 0x40,
93     OpenCLDebugInfo100FlagPrototyped = 0x80,
94     OpenCLDebugInfo100FlagObjectPointer = 0x100,
95     OpenCLDebugInfo100FlagStaticMember = 0x200,
96     OpenCLDebugInfo100FlagIndirectVariable = 0x400,
97     OpenCLDebugInfo100FlagLValueReference = 0x800,
98     OpenCLDebugInfo100FlagRValueReference = 0x1000,
99     OpenCLDebugInfo100FlagIsOptimized = 0x2000,
100     OpenCLDebugInfo100FlagIsEnumClass = 0x4000,
101     OpenCLDebugInfo100FlagTypePassByValue = 0x8000,
102     OpenCLDebugInfo100FlagTypePassByReference = 0x10000,
103     OpenCLDebugInfo100DebugInfoFlagsMax = 0x7fffffff
104 };
105 
106 enum OpenCLDebugInfo100DebugBaseTypeAttributeEncoding {
107     OpenCLDebugInfo100Unspecified = 0,
108     OpenCLDebugInfo100Address = 1,
109     OpenCLDebugInfo100Boolean = 2,
110     OpenCLDebugInfo100Float = 3,
111     OpenCLDebugInfo100Signed = 4,
112     OpenCLDebugInfo100SignedChar = 5,
113     OpenCLDebugInfo100Unsigned = 6,
114     OpenCLDebugInfo100UnsignedChar = 7,
115     OpenCLDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
116 };
117 
118 enum OpenCLDebugInfo100DebugCompositeType {
119     OpenCLDebugInfo100Class = 0,
120     OpenCLDebugInfo100Structure = 1,
121     OpenCLDebugInfo100Union = 2,
122     OpenCLDebugInfo100DebugCompositeTypeMax = 0x7fffffff
123 };
124 
125 enum OpenCLDebugInfo100DebugTypeQualifier {
126     OpenCLDebugInfo100ConstType = 0,
127     OpenCLDebugInfo100VolatileType = 1,
128     OpenCLDebugInfo100RestrictType = 2,
129     OpenCLDebugInfo100AtomicType = 3,
130     OpenCLDebugInfo100DebugTypeQualifierMax = 0x7fffffff
131 };
132 
133 enum OpenCLDebugInfo100DebugOperation {
134     OpenCLDebugInfo100Deref = 0,
135     OpenCLDebugInfo100Plus = 1,
136     OpenCLDebugInfo100Minus = 2,
137     OpenCLDebugInfo100PlusUconst = 3,
138     OpenCLDebugInfo100BitPiece = 4,
139     OpenCLDebugInfo100Swap = 5,
140     OpenCLDebugInfo100Xderef = 6,
141     OpenCLDebugInfo100StackValue = 7,
142     OpenCLDebugInfo100Constu = 8,
143     OpenCLDebugInfo100Fragment = 9,
144     OpenCLDebugInfo100DebugOperationMax = 0x7fffffff
145 };
146 
147 enum OpenCLDebugInfo100DebugImportedEntity {
148     OpenCLDebugInfo100ImportedModule = 0,
149     OpenCLDebugInfo100ImportedDeclaration = 1,
150     OpenCLDebugInfo100DebugImportedEntityMax = 0x7fffffff
151 };
152 
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
158 #endif // SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
159