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