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
29extern "C" {
30#endif
31
32enum { DebugInfoVersion = 100, DebugInfoVersion_BitWidthPadding = 0x7fffffff };
33enum { DebugInfoRevision = 1, DebugInfoRevision_BitWidthPadding = 0x7fffffff };
34
35enum 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
74enum 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
93enum 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
105enum DebugInfoDebugCompositeType {
106 DebugInfoClass = 0,
107 DebugInfoStructure = 1,
108 DebugInfoUnion = 2,
109 DebugInfoDebugCompositeTypeMax = 0x7ffffff
110};
111
112enum DebugInfoDebugTypeQualifier {
113 DebugInfoConstType = 0,
114 DebugInfoVolatileType = 1,
115 DebugInfoRestrictType = 2,
116 DebugInfoDebugTypeQualifierMax = 0x7ffffff
117};
118
119enum 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_