| 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_ |