//===-- DWARFDefines.h ------------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef SymbolFileDWARF_DWARFDefines_h_
#define SymbolFileDWARF_DWARFDefines_h_

#include "lldb/Core/dwarf.h"
#include <stdint.h>

namespace lldb_private {

typedef uint32_t DRC_class; // Holds DRC_* class bitfields

enum DW_TAG_Category {
  TagCategoryVariable,
  TagCategoryType,
  TagCategoryProgram,
  kNumTagCategories
};

typedef enum DW_TAG_Category DW_TAG_CategoryEnum;

const char *DW_TAG_value_to_name(uint32_t val);

DW_TAG_CategoryEnum get_tag_category(uint16_t tag);

const char *DW_CHILDREN_value_to_name(uint8_t val);

const char *DW_AT_value_to_name(uint32_t val);

const char *DW_FORM_value_to_name(uint32_t val);

const char *DW_OP_value_to_name(uint32_t val);

DRC_class DW_OP_value_to_class(uint32_t val);

const char *DW_ATE_value_to_name(uint32_t val);

const char *DW_ACCESS_value_to_name(uint32_t val);

const char *DW_VIS_value_to_name(uint32_t val);

const char *DW_VIRTUALITY_value_to_name(uint32_t val);

const char *DW_LANG_value_to_name(uint32_t val);

const char *DW_ID_value_to_name(uint32_t val);

const char *DW_CC_value_to_name(uint32_t val);

const char *DW_INL_value_to_name(uint32_t val);

const char *DW_ORD_value_to_name(uint32_t val);

const char *DW_LNS_value_to_name(uint32_t val);

const char *DW_LNE_value_to_name(uint32_t val);

const char *DW_MACINFO_value_to_name(uint32_t val);

const char *DW_CFA_value_to_name(uint32_t val);

const char *DW_GNU_EH_PE_value_to_name(uint32_t val);

/* These DRC are entirely our own construction,
    although they are derived from various comments in the DWARF standard.
    Most of these are not useful to the parser, but the DW_AT and DW_FORM
    classes should prove to be usable in some fashion.  */

#define DRC_0x65 0x1
#define DRC_ADDRESS 0x2
#define DRC_BLOCK 0x4
#define DRC_CONSTANT 0x8
#define DRC_DWARFv3 0x10
#define DRC_FLAG 0x20
#define DRC_INDIRECT_SPECIAL 0x40
#define DRC_LINEPTR 0x80
#define DRC_LOCEXPR 0x100
#define DRC_LOCLISTPTR 0x200
#define DRC_MACPTR 0x400
#define DRC_ONEOPERAND 0x800
#define DRC_OPERANDONE_1BYTE_DELTA 0x1000
#define DRC_OPERANDONE_2BYTE_DELTA 0x2000
#define DRC_OPERANDONE_4BYTE_DELTA 0x4000
#define DRC_OPERANDONE_ADDRESS 0x8000
#define DRC_OPERANDONE_BLOCK 0x10000
#define DRC_OPERANDONE_SLEB128_OFFSET 0x20000
#define DRC_OPERANDONE_ULEB128_OFFSET 0x40000
#define DRC_OPERANDONE_ULEB128_REGISTER 0x80000
#define DRC_OPERANDTWO_BLOCK 0x100000
#define DRC_OPERANDTWO_SLEB128_OFFSET 0x200000
#define DRC_OPERANDTWO_ULEB128_OFFSET 0x400000
#define DRC_OPERANDTWO_ULEB128_REGISTER 0x800000
#define DRC_OPERNADONE_ULEB128_REGISTER 0x1000000
#define DRC_RANGELISTPTR 0x2000000
#define DRC_REFERENCE 0x4000000
#define DRC_STRING 0x8000000
#define DRC_TWOOPERANDS 0x10000000
#define DRC_VENDOR_GNU 0x20000000
#define DRC_VENDOR_MIPS 0x40000000
#define DRC_ZEROOPERANDS 0x80000000

} // namespace lldb_private

#endif // SymbolFileDWARF_DWARFDefines_h_
