1254721Semaste//===-- DWARFDefines.h ------------------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef SymbolFileDWARF_DWARFDefines_h_ 11254721Semaste#define SymbolFileDWARF_DWARFDefines_h_ 12254721Semaste 13254721Semaste#include <stdint.h> 14254721Semaste#include <stdbool.h> 15254721Semaste#include "lldb/Core/dwarf.h" 16254721Semaste 17254721Semastenamespace lldb_private { 18254721Semaste 19254721Semastetypedef uint32_t DRC_class; // Holds DRC_* class bitfields 20254721Semaste 21254721Semasteenum DW_TAG_Category 22254721Semaste{ 23254721Semaste TagCategoryVariable, 24254721Semaste TagCategoryType, 25254721Semaste TagCategoryProgram, 26254721Semaste kNumTagCategories 27254721Semaste}; 28254721Semaste 29254721Semastetypedef enum DW_TAG_Category DW_TAG_CategoryEnum; 30254721Semaste 31254721Semasteconst char *DW_TAG_value_to_name (uint32_t val); 32254721Semaste 33254721SemasteDW_TAG_CategoryEnum get_tag_category (uint16_t tag); 34254721Semaste 35254721Semasteconst char *DW_CHILDREN_value_to_name (uint8_t val); 36254721Semaste 37254721Semasteconst char *DW_AT_value_to_name (uint32_t val); 38254721Semaste 39254721Semasteconst char *DW_FORM_value_to_name (uint32_t val); 40254721Semaste 41254721Semasteconst char *DW_OP_value_to_name (uint32_t val); 42254721Semaste 43254721SemasteDRC_class DW_OP_value_to_class (uint32_t val); 44254721Semaste 45254721Semasteconst char *DW_ATE_value_to_name (uint32_t val); 46254721Semaste 47254721Semasteconst char *DW_ACCESS_value_to_name (uint32_t val); 48254721Semaste 49254721Semasteconst char *DW_VIS_value_to_name (uint32_t val); 50254721Semaste 51254721Semasteconst char *DW_VIRTUALITY_value_to_name (uint32_t val); 52254721Semaste 53254721Semasteconst char *DW_LANG_value_to_name (uint32_t val); 54254721Semaste 55254721Semasteconst char *DW_ID_value_to_name (uint32_t val); 56254721Semaste 57254721Semasteconst char *DW_CC_value_to_name (uint32_t val); 58254721Semaste 59254721Semasteconst char *DW_INL_value_to_name (uint32_t val); 60254721Semaste 61254721Semasteconst char *DW_ORD_value_to_name (uint32_t val); 62254721Semaste 63254721Semasteconst char *DW_DSC_value_to_name (uint32_t val); 64254721Semaste 65254721Semasteconst char *DW_LNS_value_to_name (uint32_t val); 66254721Semaste 67254721Semasteconst char *DW_LNE_value_to_name (uint32_t val); 68254721Semaste 69254721Semasteconst char *DW_MACINFO_value_to_name (uint32_t val); 70254721Semaste 71254721Semasteconst char *DW_CFA_value_to_name (uint32_t val); 72254721Semaste 73254721Semasteconst char *DW_GNU_EH_PE_value_to_name (uint32_t val); 74254721Semaste 75254721Semaste/* These DRC are entirely our own construction, 76254721Semaste although they are derived from various comments in the DWARF standard. 77254721Semaste Most of these are not useful to the parser, but the DW_AT and DW_FORM 78254721Semaste classes should prove to be usable in some fashion. */ 79254721Semaste 80254721Semaste#define DRC_0x65 0x1 81254721Semaste#define DRC_ADDRESS 0x2 82254721Semaste#define DRC_BLOCK 0x4 83254721Semaste#define DRC_CONSTANT 0x8 84254721Semaste#define DRC_DWARFv3 0x10 85254721Semaste#define DRC_FLAG 0x20 86254721Semaste#define DRC_INDIRECT_SPECIAL 0x40 87254721Semaste#define DRC_LINEPTR 0x80 88254721Semaste#define DRC_LOCEXPR 0x100 89254721Semaste#define DRC_LOCLISTPTR 0x200 90254721Semaste#define DRC_MACPTR 0x400 91254721Semaste#define DRC_ONEOPERAND 0x800 92254721Semaste#define DRC_OPERANDONE_1BYTE_DELTA 0x1000 93254721Semaste#define DRC_OPERANDONE_2BYTE_DELTA 0x2000 94254721Semaste#define DRC_OPERANDONE_4BYTE_DELTA 0x4000 95254721Semaste#define DRC_OPERANDONE_ADDRESS 0x8000 96254721Semaste#define DRC_OPERANDONE_BLOCK 0x10000 97254721Semaste#define DRC_OPERANDONE_SLEB128_OFFSET 0x20000 98254721Semaste#define DRC_OPERANDONE_ULEB128_OFFSET 0x40000 99254721Semaste#define DRC_OPERANDONE_ULEB128_REGISTER 0x80000 100254721Semaste#define DRC_OPERANDTWO_BLOCK 0x100000 101254721Semaste#define DRC_OPERANDTWO_SLEB128_OFFSET 0x200000 102254721Semaste#define DRC_OPERANDTWO_ULEB128_OFFSET 0x400000 103254721Semaste#define DRC_OPERANDTWO_ULEB128_REGISTER 0x800000 104254721Semaste#define DRC_OPERNADONE_ULEB128_REGISTER 0x1000000 105254721Semaste#define DRC_RANGELISTPTR 0x2000000 106254721Semaste#define DRC_REFERENCE 0x4000000 107254721Semaste#define DRC_STRING 0x8000000 108254721Semaste#define DRC_TWOOPERANDS 0x10000000 109254721Semaste#define DRC_VENDOR_GNU 0x20000000 110254721Semaste#define DRC_VENDOR_MIPS 0x40000000 111254721Semaste#define DRC_ZEROOPERANDS 0x80000000 112254721Semaste 113254721Semaste} // namespace lldb_private 114254721Semaste 115254721Semaste 116254721Semaste#endif // SymbolFileDWARF_DWARFDefines_h_ 117