1 // Copyright (c) 2017-2024 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 DebugInfoNone = 0x0000, 76 DebugInfoFlagIsProtected = 0x01, 77 DebugInfoFlagIsPrivate = 0x02, 78 DebugInfoFlagIsPublic = 0x03, 79 DebugInfoFlagIsLocal = 0x04, 80 DebugInfoFlagIsDefinition = 0x08, 81 DebugInfoFlagFwdDecl = 0x10, 82 DebugInfoFlagArtificial = 0x20, 83 DebugInfoFlagExplicit = 0x40, 84 DebugInfoFlagPrototyped = 0x80, 85 DebugInfoFlagObjectPointer = 0x100, 86 DebugInfoFlagStaticMember = 0x200, 87 DebugInfoFlagIndirectVariable = 0x400, 88 DebugInfoFlagLValueReference = 0x800, 89 DebugInfoFlagRValueReference = 0x1000, 90 DebugInfoFlagIsOptimized = 0x2000, 91 DebugInfoDebugInfoFlagsMax = 0x7ffffff 92 }; 93 94 enum DebugInfoDebugBaseTypeAttributeEncoding { 95 DebugInfoUnspecified = 0, 96 DebugInfoAddress = 1, 97 DebugInfoBoolean = 2, 98 DebugInfoFloat = 4, 99 DebugInfoSigned = 5, 100 DebugInfoSignedChar = 6, 101 DebugInfoUnsigned = 7, 102 DebugInfoUnsignedChar = 8, 103 DebugInfoDebugBaseTypeAttributeEncodingMax = 0x7ffffff 104 }; 105 106 enum DebugInfoDebugCompositeType { 107 DebugInfoClass = 0, 108 DebugInfoStructure = 1, 109 DebugInfoUnion = 2, 110 DebugInfoDebugCompositeTypeMax = 0x7ffffff 111 }; 112 113 enum DebugInfoDebugTypeQualifier { 114 DebugInfoConstType = 0, 115 DebugInfoVolatileType = 1, 116 DebugInfoRestrictType = 2, 117 DebugInfoDebugTypeQualifierMax = 0x7ffffff 118 }; 119 120 enum DebugInfoDebugOperation { 121 DebugInfoDeref = 0, 122 DebugInfoPlus = 1, 123 DebugInfoMinus = 2, 124 DebugInfoPlusUconst = 3, 125 DebugInfoBitPiece = 4, 126 DebugInfoSwap = 5, 127 DebugInfoXderef = 6, 128 DebugInfoStackValue = 7, 129 DebugInfoConstu = 8, 130 DebugInfoDebugOperationMax = 0x7ffffff 131 }; 132 133 134 #ifdef __cplusplus 135 } 136 #endif 137 138 #endif // SPIRV_EXTINST_DebugInfo_H_