1 | // Copyright (c) 2017 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_DebugInfo_H_ |
26 | #define SPIRV_EXTINST_DebugInfo_H_ |
27 | |
28 | #ifdef __cplusplus |
29 | extern "C" { |
30 | #endif |
31 | |
32 | enum { DebugInfoVersion = 100, DebugInfoVersion_BitWidthPadding = 0x7fffffff }; |
33 | enum { DebugInfoRevision = 1, DebugInfoRevision_BitWidthPadding = 0x7fffffff }; |
34 | |
35 | enum DebugInfoInstructions { |
36 | DebugInfoDebugInfoNone = 0, |
37 | DebugInfoDebugCompilationUnit = 1, |
38 | DebugInfoDebugTypeBasic = 2, |
39 | DebugInfoDebugTypePointer = 3, |
40 | DebugInfoDebugTypeQualifier = 4, |
41 | DebugInfoDebugTypeArray = 5, |
42 | DebugInfoDebugTypeVector = 6, |
43 | DebugInfoDebugTypedef = 7, |
44 | DebugInfoDebugTypeFunction = 8, |
45 | DebugInfoDebugTypeEnum = 9, |
46 | DebugInfoDebugTypeComposite = 10, |
47 | DebugInfoDebugTypeMember = 11, |
48 | DebugInfoDebugTypeInheritance = 12, |
49 | DebugInfoDebugTypePtrToMember = 13, |
50 | DebugInfoDebugTypeTemplate = 14, |
51 | DebugInfoDebugTypeTemplateParameter = 15, |
52 | DebugInfoDebugTypeTemplateTemplateParameter = 16, |
53 | DebugInfoDebugTypeTemplateParameterPack = 17, |
54 | DebugInfoDebugGlobalVariable = 18, |
55 | DebugInfoDebugFunctionDeclaration = 19, |
56 | DebugInfoDebugFunction = 20, |
57 | DebugInfoDebugLexicalBlock = 21, |
58 | DebugInfoDebugLexicalBlockDiscriminator = 22, |
59 | DebugInfoDebugScope = 23, |
60 | DebugInfoDebugNoScope = 24, |
61 | DebugInfoDebugInlinedAt = 25, |
62 | DebugInfoDebugLocalVariable = 26, |
63 | DebugInfoDebugInlinedVariable = 27, |
64 | DebugInfoDebugDeclare = 28, |
65 | DebugInfoDebugValue = 29, |
66 | DebugInfoDebugOperation = 30, |
67 | DebugInfoDebugExpression = 31, |
68 | DebugInfoDebugMacroDef = 32, |
69 | DebugInfoDebugMacroUndef = 33, |
70 | DebugInfoInstructionsMax = 0x7ffffff |
71 | }; |
72 | |
73 | |
74 | enum DebugInfoDebugInfoFlags { |
75 | DebugInfoFlagIsProtected = 0x01, |
76 | DebugInfoFlagIsPrivate = 0x02, |
77 | DebugInfoFlagIsPublic = 0x03, |
78 | DebugInfoFlagIsLocal = 0x04, |
79 | DebugInfoFlagIsDefinition = 0x08, |
80 | DebugInfoFlagFwdDecl = 0x10, |
81 | DebugInfoFlagArtificial = 0x20, |
82 | DebugInfoFlagExplicit = 0x40, |
83 | DebugInfoFlagPrototyped = 0x80, |
84 | DebugInfoFlagObjectPointer = 0x100, |
85 | DebugInfoFlagStaticMember = 0x200, |
86 | DebugInfoFlagIndirectVariable = 0x400, |
87 | DebugInfoFlagLValueReference = 0x800, |
88 | DebugInfoFlagRValueReference = 0x1000, |
89 | DebugInfoFlagIsOptimized = 0x2000, |
90 | DebugInfoDebugInfoFlagsMax = 0x7ffffff |
91 | }; |
92 | |
93 | enum DebugInfoDebugBaseTypeAttributeEncoding { |
94 | DebugInfoUnspecified = 0, |
95 | DebugInfoAddress = 1, |
96 | DebugInfoBoolean = 2, |
97 | DebugInfoFloat = 4, |
98 | DebugInfoSigned = 5, |
99 | DebugInfoSignedChar = 6, |
100 | DebugInfoUnsigned = 7, |
101 | DebugInfoUnsignedChar = 8, |
102 | DebugInfoDebugBaseTypeAttributeEncodingMax = 0x7ffffff |
103 | }; |
104 | |
105 | enum DebugInfoDebugCompositeType { |
106 | DebugInfoClass = 0, |
107 | DebugInfoStructure = 1, |
108 | DebugInfoUnion = 2, |
109 | DebugInfoDebugCompositeTypeMax = 0x7ffffff |
110 | }; |
111 | |
112 | enum DebugInfoDebugTypeQualifier { |
113 | DebugInfoConstType = 0, |
114 | DebugInfoVolatileType = 1, |
115 | DebugInfoRestrictType = 2, |
116 | DebugInfoDebugTypeQualifierMax = 0x7ffffff |
117 | }; |
118 | |
119 | enum DebugInfoDebugOperation { |
120 | DebugInfoDeref = 0, |
121 | DebugInfoPlus = 1, |
122 | DebugInfoMinus = 2, |
123 | DebugInfoPlusUconst = 3, |
124 | DebugInfoBitPiece = 4, |
125 | DebugInfoSwap = 5, |
126 | DebugInfoXderef = 6, |
127 | DebugInfoStackValue = 7, |
128 | DebugInfoConstu = 8, |
129 | DebugInfoDebugOperationMax = 0x7ffffff |
130 | }; |
131 | |
132 | |
133 | #ifdef __cplusplus |
134 | } |
135 | #endif |
136 | |
137 | #endif // SPIRV_EXTINST_DebugInfo_H_ |