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     OpenCLDebugInfo100InstructionsMax = 0x7fffffff
79 };
80 
81 
82 enum OpenCLDebugInfo100DebugInfoFlags {
83     OpenCLDebugInfo100FlagIsProtected = 0x01,
84     OpenCLDebugInfo100FlagIsPrivate = 0x02,
85     OpenCLDebugInfo100FlagIsPublic = 0x03,
86     OpenCLDebugInfo100FlagIsLocal = 0x04,
87     OpenCLDebugInfo100FlagIsDefinition = 0x08,
88     OpenCLDebugInfo100FlagFwdDecl = 0x10,
89     OpenCLDebugInfo100FlagArtificial = 0x20,
90     OpenCLDebugInfo100FlagExplicit = 0x40,
91     OpenCLDebugInfo100FlagPrototyped = 0x80,
92     OpenCLDebugInfo100FlagObjectPointer = 0x100,
93     OpenCLDebugInfo100FlagStaticMember = 0x200,
94     OpenCLDebugInfo100FlagIndirectVariable = 0x400,
95     OpenCLDebugInfo100FlagLValueReference = 0x800,
96     OpenCLDebugInfo100FlagRValueReference = 0x1000,
97     OpenCLDebugInfo100FlagIsOptimized = 0x2000,
98     OpenCLDebugInfo100FlagIsEnumClass = 0x4000,
99     OpenCLDebugInfo100FlagTypePassByValue = 0x8000,
100     OpenCLDebugInfo100FlagTypePassByReference = 0x10000,
101     OpenCLDebugInfo100DebugInfoFlagsMax = 0x7fffffff
102 };
103 
104 enum OpenCLDebugInfo100DebugBaseTypeAttributeEncoding {
105     OpenCLDebugInfo100Unspecified = 0,
106     OpenCLDebugInfo100Address = 1,
107     OpenCLDebugInfo100Boolean = 2,
108     OpenCLDebugInfo100Float = 3,
109     OpenCLDebugInfo100Signed = 4,
110     OpenCLDebugInfo100SignedChar = 5,
111     OpenCLDebugInfo100Unsigned = 6,
112     OpenCLDebugInfo100UnsignedChar = 7,
113     OpenCLDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
114 };
115 
116 enum OpenCLDebugInfo100DebugCompositeType {
117     OpenCLDebugInfo100Class = 0,
118     OpenCLDebugInfo100Structure = 1,
119     OpenCLDebugInfo100Union = 2,
120     OpenCLDebugInfo100DebugCompositeTypeMax = 0x7fffffff
121 };
122 
123 enum OpenCLDebugInfo100DebugTypeQualifier {
124     OpenCLDebugInfo100ConstType = 0,
125     OpenCLDebugInfo100VolatileType = 1,
126     OpenCLDebugInfo100RestrictType = 2,
127     OpenCLDebugInfo100AtomicType = 3,
128     OpenCLDebugInfo100DebugTypeQualifierMax = 0x7fffffff
129 };
130 
131 enum OpenCLDebugInfo100DebugOperation {
132     OpenCLDebugInfo100Deref = 0,
133     OpenCLDebugInfo100Plus = 1,
134     OpenCLDebugInfo100Minus = 2,
135     OpenCLDebugInfo100PlusUconst = 3,
136     OpenCLDebugInfo100BitPiece = 4,
137     OpenCLDebugInfo100Swap = 5,
138     OpenCLDebugInfo100Xderef = 6,
139     OpenCLDebugInfo100StackValue = 7,
140     OpenCLDebugInfo100Constu = 8,
141     OpenCLDebugInfo100Fragment = 9,
142     OpenCLDebugInfo100DebugOperationMax = 0x7fffffff
143 };
144 
145 enum OpenCLDebugInfo100DebugImportedEntity {
146     OpenCLDebugInfo100ImportedModule = 0,
147     OpenCLDebugInfo100ImportedDeclaration = 1,
148     OpenCLDebugInfo100DebugImportedEntityMax = 0x7fffffff
149 };
150 
151 
152 #ifdef __cplusplus
153 }
154 #endif
155 
156 #endif // SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
157