Blame sysdeps/generic/dwarf2.h

Packit 6c4009
/* Declarations and definitions of codes relating to the DWARF2 symbolic
Packit 6c4009
   debugging information format.
Packit 6c4009
   Copyright (C) 1992-2018 Free Software Foundation, Inc.
Packit 6c4009
   Contributed by Gary Funck (gary@intrepid.com).  Derived from the
Packit 6c4009
   DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
Packit 6c4009
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
#ifndef _DWARF2_H
Packit 6c4009
#define _DWARF2_H	1
Packit 6c4009
Packit 6c4009
/* This file is derived from the DWARF specification (a public document)
Packit 6c4009
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
Packit 6c4009
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
Packit 6c4009
   by UNIX International.  Copies of this specification are available from
Packit 6c4009
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */
Packit 6c4009
Packit 6c4009
/* This file is shared between GCC and GDB, and should not contain
Packit 6c4009
   prototypes.  */
Packit 6c4009
Packit 6c4009
#ifndef __ASSEMBLER__
Packit 6c4009
/* Tag names and codes.  */
Packit 6c4009
Packit 6c4009
enum dwarf_tag
Packit 6c4009
  {
Packit 6c4009
    DW_TAG_padding = 0x00,
Packit 6c4009
    DW_TAG_array_type = 0x01,
Packit 6c4009
    DW_TAG_class_type = 0x02,
Packit 6c4009
    DW_TAG_entry_point = 0x03,
Packit 6c4009
    DW_TAG_enumeration_type = 0x04,
Packit 6c4009
    DW_TAG_formal_parameter = 0x05,
Packit 6c4009
    DW_TAG_imported_declaration = 0x08,
Packit 6c4009
    DW_TAG_label = 0x0a,
Packit 6c4009
    DW_TAG_lexical_block = 0x0b,
Packit 6c4009
    DW_TAG_member = 0x0d,
Packit 6c4009
    DW_TAG_pointer_type = 0x0f,
Packit 6c4009
    DW_TAG_reference_type = 0x10,
Packit 6c4009
    DW_TAG_compile_unit = 0x11,
Packit 6c4009
    DW_TAG_string_type = 0x12,
Packit 6c4009
    DW_TAG_structure_type = 0x13,
Packit 6c4009
    DW_TAG_subroutine_type = 0x15,
Packit 6c4009
    DW_TAG_typedef = 0x16,
Packit 6c4009
    DW_TAG_union_type = 0x17,
Packit 6c4009
    DW_TAG_unspecified_parameters = 0x18,
Packit 6c4009
    DW_TAG_variant = 0x19,
Packit 6c4009
    DW_TAG_common_block = 0x1a,
Packit 6c4009
    DW_TAG_common_inclusion = 0x1b,
Packit 6c4009
    DW_TAG_inheritance = 0x1c,
Packit 6c4009
    DW_TAG_inlined_subroutine = 0x1d,
Packit 6c4009
    DW_TAG_module = 0x1e,
Packit 6c4009
    DW_TAG_ptr_to_member_type = 0x1f,
Packit 6c4009
    DW_TAG_set_type = 0x20,
Packit 6c4009
    DW_TAG_subrange_type = 0x21,
Packit 6c4009
    DW_TAG_with_stmt = 0x22,
Packit 6c4009
    DW_TAG_access_declaration = 0x23,
Packit 6c4009
    DW_TAG_base_type = 0x24,
Packit 6c4009
    DW_TAG_catch_block = 0x25,
Packit 6c4009
    DW_TAG_const_type = 0x26,
Packit 6c4009
    DW_TAG_constant = 0x27,
Packit 6c4009
    DW_TAG_enumerator = 0x28,
Packit 6c4009
    DW_TAG_file_type = 0x29,
Packit 6c4009
    DW_TAG_friend = 0x2a,
Packit 6c4009
    DW_TAG_namelist = 0x2b,
Packit 6c4009
    DW_TAG_namelist_item = 0x2c,
Packit 6c4009
    DW_TAG_packed_type = 0x2d,
Packit 6c4009
    DW_TAG_subprogram = 0x2e,
Packit 6c4009
    DW_TAG_template_type_param = 0x2f,
Packit 6c4009
    DW_TAG_template_value_param = 0x30,
Packit 6c4009
    DW_TAG_thrown_type = 0x31,
Packit 6c4009
    DW_TAG_try_block = 0x32,
Packit 6c4009
    DW_TAG_variant_part = 0x33,
Packit 6c4009
    DW_TAG_variable = 0x34,
Packit 6c4009
    DW_TAG_volatile_type = 0x35,
Packit 6c4009
    /* SGI/MIPS Extensions */
Packit 6c4009
    DW_TAG_MIPS_loop = 0x4081,
Packit 6c4009
    /* GNU extensions */
Packit 6c4009
    DW_TAG_format_label = 0x4101,	/* for FORTRAN 77 and Fortran 90 */
Packit 6c4009
    DW_TAG_function_template = 0x4102,	/* for C++ */
Packit 6c4009
    DW_TAG_class_template = 0x4103,	/* for C++ */
Packit 6c4009
    DW_TAG_GNU_BINCL = 0x4104,
Packit 6c4009
    DW_TAG_GNU_EINCL = 0x4105
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define DW_TAG_lo_user	0x4080
Packit 6c4009
#define DW_TAG_hi_user	0xffff
Packit 6c4009
Packit 6c4009
/* flag that tells whether entry has a child or not */
Packit 6c4009
#define DW_children_no   0
Packit 6c4009
#define	DW_children_yes  1
Packit 6c4009
Packit 6c4009
/* Form names and codes.  */
Packit 6c4009
enum dwarf_form
Packit 6c4009
  {
Packit 6c4009
    DW_FORM_addr = 0x01,
Packit 6c4009
    DW_FORM_block2 = 0x03,
Packit 6c4009
    DW_FORM_block4 = 0x04,
Packit 6c4009
    DW_FORM_data2 = 0x05,
Packit 6c4009
    DW_FORM_data4 = 0x06,
Packit 6c4009
    DW_FORM_data8 = 0x07,
Packit 6c4009
    DW_FORM_string = 0x08,
Packit 6c4009
    DW_FORM_block = 0x09,
Packit 6c4009
    DW_FORM_block1 = 0x0a,
Packit 6c4009
    DW_FORM_data1 = 0x0b,
Packit 6c4009
    DW_FORM_flag = 0x0c,
Packit 6c4009
    DW_FORM_sdata = 0x0d,
Packit 6c4009
    DW_FORM_strp = 0x0e,
Packit 6c4009
    DW_FORM_udata = 0x0f,
Packit 6c4009
    DW_FORM_ref_addr = 0x10,
Packit 6c4009
    DW_FORM_ref1 = 0x11,
Packit 6c4009
    DW_FORM_ref2 = 0x12,
Packit 6c4009
    DW_FORM_ref4 = 0x13,
Packit 6c4009
    DW_FORM_ref8 = 0x14,
Packit 6c4009
    DW_FORM_ref_udata = 0x15,
Packit 6c4009
    DW_FORM_indirect = 0x16
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* Attribute names and codes.  */
Packit 6c4009
Packit 6c4009
enum dwarf_attribute
Packit 6c4009
  {
Packit 6c4009
    DW_AT_sibling = 0x01,
Packit 6c4009
    DW_AT_location = 0x02,
Packit 6c4009
    DW_AT_name = 0x03,
Packit 6c4009
    DW_AT_ordering = 0x09,
Packit 6c4009
    DW_AT_subscr_data = 0x0a,
Packit 6c4009
    DW_AT_byte_size = 0x0b,
Packit 6c4009
    DW_AT_bit_offset = 0x0c,
Packit 6c4009
    DW_AT_bit_size = 0x0d,
Packit 6c4009
    DW_AT_element_list = 0x0f,
Packit 6c4009
    DW_AT_stmt_list = 0x10,
Packit 6c4009
    DW_AT_low_pc = 0x11,
Packit 6c4009
    DW_AT_high_pc = 0x12,
Packit 6c4009
    DW_AT_language = 0x13,
Packit 6c4009
    DW_AT_member = 0x14,
Packit 6c4009
    DW_AT_discr = 0x15,
Packit 6c4009
    DW_AT_discr_value = 0x16,
Packit 6c4009
    DW_AT_visibility = 0x17,
Packit 6c4009
    DW_AT_import = 0x18,
Packit 6c4009
    DW_AT_string_length = 0x19,
Packit 6c4009
    DW_AT_common_reference = 0x1a,
Packit 6c4009
    DW_AT_comp_dir = 0x1b,
Packit 6c4009
    DW_AT_const_value = 0x1c,
Packit 6c4009
    DW_AT_containing_type = 0x1d,
Packit 6c4009
    DW_AT_default_value = 0x1e,
Packit 6c4009
    DW_AT_inline = 0x20,
Packit 6c4009
    DW_AT_is_optional = 0x21,
Packit 6c4009
    DW_AT_lower_bound = 0x22,
Packit 6c4009
    DW_AT_producer = 0x25,
Packit 6c4009
    DW_AT_prototyped = 0x27,
Packit 6c4009
    DW_AT_return_addr = 0x2a,
Packit 6c4009
    DW_AT_start_scope = 0x2c,
Packit 6c4009
    DW_AT_stride_size = 0x2e,
Packit 6c4009
    DW_AT_upper_bound = 0x2f,
Packit 6c4009
    DW_AT_abstract_origin = 0x31,
Packit 6c4009
    DW_AT_accessibility = 0x32,
Packit 6c4009
    DW_AT_address_class = 0x33,
Packit 6c4009
    DW_AT_artificial = 0x34,
Packit 6c4009
    DW_AT_base_types = 0x35,
Packit 6c4009
    DW_AT_calling_convention = 0x36,
Packit 6c4009
    DW_AT_count = 0x37,
Packit 6c4009
    DW_AT_data_member_location = 0x38,
Packit 6c4009
    DW_AT_decl_column = 0x39,
Packit 6c4009
    DW_AT_decl_file = 0x3a,
Packit 6c4009
    DW_AT_decl_line = 0x3b,
Packit 6c4009
    DW_AT_declaration = 0x3c,
Packit 6c4009
    DW_AT_discr_list = 0x3d,
Packit 6c4009
    DW_AT_encoding = 0x3e,
Packit 6c4009
    DW_AT_external = 0x3f,
Packit 6c4009
    DW_AT_frame_base = 0x40,
Packit 6c4009
    DW_AT_friend = 0x41,
Packit 6c4009
    DW_AT_identifier_case = 0x42,
Packit 6c4009
    DW_AT_macro_info = 0x43,
Packit 6c4009
    DW_AT_namelist_items = 0x44,
Packit 6c4009
    DW_AT_priority = 0x45,
Packit 6c4009
    DW_AT_segment = 0x46,
Packit 6c4009
    DW_AT_specification = 0x47,
Packit 6c4009
    DW_AT_static_link = 0x48,
Packit 6c4009
    DW_AT_type = 0x49,
Packit 6c4009
    DW_AT_use_location = 0x4a,
Packit 6c4009
    DW_AT_variable_parameter = 0x4b,
Packit 6c4009
    DW_AT_virtuality = 0x4c,
Packit 6c4009
    DW_AT_vtable_elem_location = 0x4d,
Packit 6c4009
    /* SGI/MIPS Extensions */
Packit 6c4009
    DW_AT_MIPS_fde = 0x2001,
Packit 6c4009
    DW_AT_MIPS_loop_begin = 0x2002,
Packit 6c4009
    DW_AT_MIPS_tail_loop_begin = 0x2003,
Packit 6c4009
    DW_AT_MIPS_epilog_begin = 0x2004,
Packit 6c4009
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
Packit 6c4009
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
Packit 6c4009
    DW_AT_MIPS_linkage_name = 0x2007,
Packit 6c4009
    DW_AT_MIPS_stride = 0x2008,
Packit 6c4009
    DW_AT_MIPS_abstract_name = 0x2009,
Packit 6c4009
    DW_AT_MIPS_clone_origin = 0x200a,
Packit 6c4009
    DW_AT_MIPS_has_inlines = 0x200b,
Packit 6c4009
    /* GNU extensions.  */
Packit 6c4009
    DW_AT_sf_names = 0x2101,
Packit 6c4009
    DW_AT_src_info = 0x2102,
Packit 6c4009
    DW_AT_mac_info = 0x2103,
Packit 6c4009
    DW_AT_src_coords = 0x2104,
Packit 6c4009
    DW_AT_body_begin = 0x2105,
Packit 6c4009
    DW_AT_body_end = 0x2106
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define DW_AT_lo_user	0x2000	/* implementation-defined range start */
Packit 6c4009
#define DW_AT_hi_user	0x3ff0	/* implementation-defined range end */
Packit 6c4009
Packit 6c4009
/* Location atom names and codes.  */
Packit 6c4009
Packit 6c4009
enum dwarf_location_atom
Packit 6c4009
  {
Packit 6c4009
    DW_OP_addr = 0x03,
Packit 6c4009
    DW_OP_deref = 0x06,
Packit 6c4009
    DW_OP_const1u = 0x08,
Packit 6c4009
    DW_OP_const1s = 0x09,
Packit 6c4009
    DW_OP_const2u = 0x0a,
Packit 6c4009
    DW_OP_const2s = 0x0b,
Packit 6c4009
    DW_OP_const4u = 0x0c,
Packit 6c4009
    DW_OP_const4s = 0x0d,
Packit 6c4009
    DW_OP_const8u = 0x0e,
Packit 6c4009
    DW_OP_const8s = 0x0f,
Packit 6c4009
    DW_OP_constu = 0x10,
Packit 6c4009
    DW_OP_consts = 0x11,
Packit 6c4009
    DW_OP_dup = 0x12,
Packit 6c4009
    DW_OP_drop = 0x13,
Packit 6c4009
    DW_OP_over = 0x14,
Packit 6c4009
    DW_OP_pick = 0x15,
Packit 6c4009
    DW_OP_swap = 0x16,
Packit 6c4009
    DW_OP_rot = 0x17,
Packit 6c4009
    DW_OP_xderef = 0x18,
Packit 6c4009
    DW_OP_abs = 0x19,
Packit 6c4009
    DW_OP_and = 0x1a,
Packit 6c4009
    DW_OP_div = 0x1b,
Packit 6c4009
    DW_OP_minus = 0x1c,
Packit 6c4009
    DW_OP_mod = 0x1d,
Packit 6c4009
    DW_OP_mul = 0x1e,
Packit 6c4009
    DW_OP_neg = 0x1f,
Packit 6c4009
    DW_OP_not = 0x20,
Packit 6c4009
    DW_OP_or = 0x21,
Packit 6c4009
    DW_OP_plus = 0x22,
Packit 6c4009
    DW_OP_plus_uconst = 0x23,
Packit 6c4009
    DW_OP_shl = 0x24,
Packit 6c4009
    DW_OP_shr = 0x25,
Packit 6c4009
    DW_OP_shra = 0x26,
Packit 6c4009
    DW_OP_xor = 0x27,
Packit 6c4009
    DW_OP_bra = 0x28,
Packit 6c4009
    DW_OP_eq = 0x29,
Packit 6c4009
    DW_OP_ge = 0x2a,
Packit 6c4009
    DW_OP_gt = 0x2b,
Packit 6c4009
    DW_OP_le = 0x2c,
Packit 6c4009
    DW_OP_lt = 0x2d,
Packit 6c4009
    DW_OP_ne = 0x2e,
Packit 6c4009
    DW_OP_skip = 0x2f,
Packit 6c4009
    DW_OP_lit0 = 0x30,
Packit 6c4009
    DW_OP_lit1 = 0x31,
Packit 6c4009
    DW_OP_lit2 = 0x32,
Packit 6c4009
    DW_OP_lit3 = 0x33,
Packit 6c4009
    DW_OP_lit4 = 0x34,
Packit 6c4009
    DW_OP_lit5 = 0x35,
Packit 6c4009
    DW_OP_lit6 = 0x36,
Packit 6c4009
    DW_OP_lit7 = 0x37,
Packit 6c4009
    DW_OP_lit8 = 0x38,
Packit 6c4009
    DW_OP_lit9 = 0x39,
Packit 6c4009
    DW_OP_lit10 = 0x3a,
Packit 6c4009
    DW_OP_lit11 = 0x3b,
Packit 6c4009
    DW_OP_lit12 = 0x3c,
Packit 6c4009
    DW_OP_lit13 = 0x3d,
Packit 6c4009
    DW_OP_lit14 = 0x3e,
Packit 6c4009
    DW_OP_lit15 = 0x3f,
Packit 6c4009
    DW_OP_lit16 = 0x40,
Packit 6c4009
    DW_OP_lit17 = 0x41,
Packit 6c4009
    DW_OP_lit18 = 0x42,
Packit 6c4009
    DW_OP_lit19 = 0x43,
Packit 6c4009
    DW_OP_lit20 = 0x44,
Packit 6c4009
    DW_OP_lit21 = 0x45,
Packit 6c4009
    DW_OP_lit22 = 0x46,
Packit 6c4009
    DW_OP_lit23 = 0x47,
Packit 6c4009
    DW_OP_lit24 = 0x48,
Packit 6c4009
    DW_OP_lit25 = 0x49,
Packit 6c4009
    DW_OP_lit26 = 0x4a,
Packit 6c4009
    DW_OP_lit27 = 0x4b,
Packit 6c4009
    DW_OP_lit28 = 0x4c,
Packit 6c4009
    DW_OP_lit29 = 0x4d,
Packit 6c4009
    DW_OP_lit30 = 0x4e,
Packit 6c4009
    DW_OP_lit31 = 0x4f,
Packit 6c4009
    DW_OP_reg0 = 0x50,
Packit 6c4009
    DW_OP_reg1 = 0x51,
Packit 6c4009
    DW_OP_reg2 = 0x52,
Packit 6c4009
    DW_OP_reg3 = 0x53,
Packit 6c4009
    DW_OP_reg4 = 0x54,
Packit 6c4009
    DW_OP_reg5 = 0x55,
Packit 6c4009
    DW_OP_reg6 = 0x56,
Packit 6c4009
    DW_OP_reg7 = 0x57,
Packit 6c4009
    DW_OP_reg8 = 0x58,
Packit 6c4009
    DW_OP_reg9 = 0x59,
Packit 6c4009
    DW_OP_reg10 = 0x5a,
Packit 6c4009
    DW_OP_reg11 = 0x5b,
Packit 6c4009
    DW_OP_reg12 = 0x5c,
Packit 6c4009
    DW_OP_reg13 = 0x5d,
Packit 6c4009
    DW_OP_reg14 = 0x5e,
Packit 6c4009
    DW_OP_reg15 = 0x5f,
Packit 6c4009
    DW_OP_reg16 = 0x60,
Packit 6c4009
    DW_OP_reg17 = 0x61,
Packit 6c4009
    DW_OP_reg18 = 0x62,
Packit 6c4009
    DW_OP_reg19 = 0x63,
Packit 6c4009
    DW_OP_reg20 = 0x64,
Packit 6c4009
    DW_OP_reg21 = 0x65,
Packit 6c4009
    DW_OP_reg22 = 0x66,
Packit 6c4009
    DW_OP_reg23 = 0x67,
Packit 6c4009
    DW_OP_reg24 = 0x68,
Packit 6c4009
    DW_OP_reg25 = 0x69,
Packit 6c4009
    DW_OP_reg26 = 0x6a,
Packit 6c4009
    DW_OP_reg27 = 0x6b,
Packit 6c4009
    DW_OP_reg28 = 0x6c,
Packit 6c4009
    DW_OP_reg29 = 0x6d,
Packit 6c4009
    DW_OP_reg30 = 0x6e,
Packit 6c4009
    DW_OP_reg31 = 0x6f,
Packit 6c4009
    DW_OP_breg0 = 0x70,
Packit 6c4009
    DW_OP_breg1 = 0x71,
Packit 6c4009
    DW_OP_breg2 = 0x72,
Packit 6c4009
    DW_OP_breg3 = 0x73,
Packit 6c4009
    DW_OP_breg4 = 0x74,
Packit 6c4009
    DW_OP_breg5 = 0x75,
Packit 6c4009
    DW_OP_breg6 = 0x76,
Packit 6c4009
    DW_OP_breg7 = 0x77,
Packit 6c4009
    DW_OP_breg8 = 0x78,
Packit 6c4009
    DW_OP_breg9 = 0x79,
Packit 6c4009
    DW_OP_breg10 = 0x7a,
Packit 6c4009
    DW_OP_breg11 = 0x7b,
Packit 6c4009
    DW_OP_breg12 = 0x7c,
Packit 6c4009
    DW_OP_breg13 = 0x7d,
Packit 6c4009
    DW_OP_breg14 = 0x7e,
Packit 6c4009
    DW_OP_breg15 = 0x7f,
Packit 6c4009
    DW_OP_breg16 = 0x80,
Packit 6c4009
    DW_OP_breg17 = 0x81,
Packit 6c4009
    DW_OP_breg18 = 0x82,
Packit 6c4009
    DW_OP_breg19 = 0x83,
Packit 6c4009
    DW_OP_breg20 = 0x84,
Packit 6c4009
    DW_OP_breg21 = 0x85,
Packit 6c4009
    DW_OP_breg22 = 0x86,
Packit 6c4009
    DW_OP_breg23 = 0x87,
Packit 6c4009
    DW_OP_breg24 = 0x88,
Packit 6c4009
    DW_OP_breg25 = 0x89,
Packit 6c4009
    DW_OP_breg26 = 0x8a,
Packit 6c4009
    DW_OP_breg27 = 0x8b,
Packit 6c4009
    DW_OP_breg28 = 0x8c,
Packit 6c4009
    DW_OP_breg29 = 0x8d,
Packit 6c4009
    DW_OP_breg30 = 0x8e,
Packit 6c4009
    DW_OP_breg31 = 0x8f,
Packit 6c4009
    DW_OP_regx = 0x90,
Packit 6c4009
    DW_OP_fbreg = 0x91,
Packit 6c4009
    DW_OP_bregx = 0x92,
Packit 6c4009
    DW_OP_piece = 0x93,
Packit 6c4009
    DW_OP_deref_size = 0x94,
Packit 6c4009
    DW_OP_xderef_size = 0x95,
Packit 6c4009
    DW_OP_nop = 0x96
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define DW_OP_lo_user	0x80	/* implementation-defined range start */
Packit 6c4009
#define DW_OP_hi_user	0xff	/* implementation-defined range end */
Packit 6c4009
Packit 6c4009
/* Type encodings.  */
Packit 6c4009
Packit 6c4009
enum dwarf_type
Packit 6c4009
  {
Packit 6c4009
    DW_ATE_void = 0x0,
Packit 6c4009
    DW_ATE_address = 0x1,
Packit 6c4009
    DW_ATE_boolean = 0x2,
Packit 6c4009
    DW_ATE_complex_float = 0x3,
Packit 6c4009
    DW_ATE_float = 0x4,
Packit 6c4009
    DW_ATE_signed = 0x5,
Packit 6c4009
    DW_ATE_signed_char = 0x6,
Packit 6c4009
    DW_ATE_unsigned = 0x7,
Packit 6c4009
    DW_ATE_unsigned_char = 0x8
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define	DW_ATE_lo_user 0x80
Packit 6c4009
#define	DW_ATE_hi_user 0xff
Packit 6c4009
Packit 6c4009
/* Array ordering names and codes.  */
Packit 6c4009
enum dwarf_array_dim_ordering
Packit 6c4009
  {
Packit 6c4009
    DW_ORD_row_major = 0,
Packit 6c4009
    DW_ORD_col_major = 1
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* access attribute */
Packit 6c4009
enum dwarf_access_attribute
Packit 6c4009
  {
Packit 6c4009
    DW_ACCESS_public = 1,
Packit 6c4009
    DW_ACCESS_protected = 2,
Packit 6c4009
    DW_ACCESS_private = 3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* visibility */
Packit 6c4009
enum dwarf_visibility_attribute
Packit 6c4009
  {
Packit 6c4009
    DW_VIS_local = 1,
Packit 6c4009
    DW_VIS_exported = 2,
Packit 6c4009
    DW_VIS_qualified = 3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* virtuality */
Packit 6c4009
enum dwarf_virtuality_attribute
Packit 6c4009
  {
Packit 6c4009
    DW_VIRTUALITY_none = 0,
Packit 6c4009
    DW_VIRTUALITY_virtual = 1,
Packit 6c4009
    DW_VIRTUALITY_pure_virtual = 2
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* case sensitivity */
Packit 6c4009
enum dwarf_id_case
Packit 6c4009
  {
Packit 6c4009
    DW_ID_case_sensitive = 0,
Packit 6c4009
    DW_ID_up_case = 1,
Packit 6c4009
    DW_ID_down_case = 2,
Packit 6c4009
    DW_ID_case_insensitive = 3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* calling convention */
Packit 6c4009
enum dwarf_calling_convention
Packit 6c4009
  {
Packit 6c4009
    DW_CC_normal = 0x1,
Packit 6c4009
    DW_CC_program = 0x2,
Packit 6c4009
    DW_CC_nocall = 0x3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define DW_CC_lo_user 0x40
Packit 6c4009
#define DW_CC_hi_user 0xff
Packit 6c4009
Packit 6c4009
/* inline attribute */
Packit 6c4009
enum dwarf_inline_attribute
Packit 6c4009
  {
Packit 6c4009
    DW_INL_not_inlined = 0,
Packit 6c4009
    DW_INL_inlined = 1,
Packit 6c4009
    DW_INL_declared_not_inlined = 2,
Packit 6c4009
    DW_INL_declared_inlined = 3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* discriminant lists */
Packit 6c4009
enum dwarf_discrim_list
Packit 6c4009
  {
Packit 6c4009
    DW_DSC_label = 0,
Packit 6c4009
    DW_DSC_range = 1
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* line number opcodes */
Packit 6c4009
enum dwarf_line_number_ops
Packit 6c4009
  {
Packit 6c4009
    DW_LNS_extended_op = 0,
Packit 6c4009
    DW_LNS_copy = 1,
Packit 6c4009
    DW_LNS_advance_pc = 2,
Packit 6c4009
    DW_LNS_advance_line = 3,
Packit 6c4009
    DW_LNS_set_file = 4,
Packit 6c4009
    DW_LNS_set_column = 5,
Packit 6c4009
    DW_LNS_negate_stmt = 6,
Packit 6c4009
    DW_LNS_set_basic_block = 7,
Packit 6c4009
    DW_LNS_const_add_pc = 8,
Packit 6c4009
    DW_LNS_fixed_advance_pc = 9
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* line number extended opcodes */
Packit 6c4009
enum dwarf_line_number_x_ops
Packit 6c4009
  {
Packit 6c4009
    DW_LNE_end_sequence = 1,
Packit 6c4009
    DW_LNE_set_address = 2,
Packit 6c4009
    DW_LNE_define_file = 3
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
/* call frame information */
Packit 6c4009
enum dwarf_call_frame_info
Packit 6c4009
  {
Packit 6c4009
    DW_CFA_advance_loc = 0x40,
Packit 6c4009
    DW_CFA_offset = 0x80,
Packit 6c4009
    DW_CFA_restore = 0xc0,
Packit 6c4009
    DW_CFA_nop = 0x00,
Packit 6c4009
    DW_CFA_set_loc = 0x01,
Packit 6c4009
    DW_CFA_advance_loc1 = 0x02,
Packit 6c4009
    DW_CFA_advance_loc2 = 0x03,
Packit 6c4009
    DW_CFA_advance_loc4 = 0x04,
Packit 6c4009
    DW_CFA_offset_extended = 0x05,
Packit 6c4009
    DW_CFA_restore_extended = 0x06,
Packit 6c4009
    DW_CFA_undefined = 0x07,
Packit 6c4009
    DW_CFA_same_value = 0x08,
Packit 6c4009
    DW_CFA_register = 0x09,
Packit 6c4009
    DW_CFA_remember_state = 0x0a,
Packit 6c4009
    DW_CFA_restore_state = 0x0b,
Packit 6c4009
    DW_CFA_def_cfa = 0x0c,
Packit 6c4009
    DW_CFA_def_cfa_register = 0x0d,
Packit 6c4009
    DW_CFA_def_cfa_offset = 0x0e,
Packit 6c4009
    DW_CFA_def_cfa_expression = 0x0f,
Packit 6c4009
    DW_CFA_expression = 0x10,
Packit 6c4009
    /* Dwarf 2.1 */
Packit 6c4009
    DW_CFA_offset_extended_sf = 0x11,
Packit 6c4009
    DW_CFA_def_cfa_sf = 0x12,
Packit 6c4009
    DW_CFA_def_cfa_offset_sf = 0x13,
Packit 6c4009
Packit 6c4009
    /* SGI/MIPS specific */
Packit 6c4009
    DW_CFA_MIPS_advance_loc8 = 0x1d,
Packit 6c4009
Packit 6c4009
    /* GNU extensions */
Packit 6c4009
    DW_CFA_GNU_window_save = 0x2d,
Packit 6c4009
    DW_CFA_GNU_args_size = 0x2e,
Packit 6c4009
    DW_CFA_GNU_negative_offset_extended = 0x2f
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#define DW_CIE_ID	  0xffffffff
Packit 6c4009
#define DW_CIE_VERSION	  1
Packit 6c4009
Packit 6c4009
#define DW_CFA_extended   0
Packit 6c4009
#define DW_CFA_low_user   0x1c
Packit 6c4009
#define DW_CFA_high_user  0x3f
Packit 6c4009
Packit 6c4009
#define DW_CHILDREN_no		     0x00
Packit 6c4009
#define DW_CHILDREN_yes		     0x01
Packit 6c4009
Packit 6c4009
#define DW_ADDR_none		0
Packit 6c4009
Packit 6c4009
/* Source language names and codes.  */
Packit 6c4009
Packit 6c4009
enum dwarf_source_language
Packit 6c4009
  {
Packit 6c4009
    DW_LANG_C89 = 0x0001,
Packit 6c4009
    DW_LANG_C = 0x0002,
Packit 6c4009
    DW_LANG_Ada83 = 0x0003,
Packit 6c4009
    DW_LANG_C_plus_plus = 0x0004,
Packit 6c4009
    DW_LANG_Cobol74 = 0x0005,
Packit 6c4009
    DW_LANG_Cobol85 = 0x0006,
Packit 6c4009
    DW_LANG_Fortran77 = 0x0007,
Packit 6c4009
    DW_LANG_Fortran90 = 0x0008,
Packit 6c4009
    DW_LANG_Pascal83 = 0x0009,
Packit 6c4009
    DW_LANG_Modula2 = 0x000a,
Packit 6c4009
    DW_LANG_Java = 0x000b,
Packit 6c4009
    DW_LANG_Mips_Assembler = 0x8001
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
Packit 6c4009
#define DW_LANG_lo_user 0x8000	/* implementation-defined range start */
Packit 6c4009
#define DW_LANG_hi_user 0xffff	/* implementation-defined range start */
Packit 6c4009
Packit 6c4009
/* Names and codes for macro information.  */
Packit 6c4009
Packit 6c4009
enum dwarf_macinfo_record_type
Packit 6c4009
  {
Packit 6c4009
    DW_MACINFO_define = 1,
Packit 6c4009
    DW_MACINFO_undef = 2,
Packit 6c4009
    DW_MACINFO_start_file = 3,
Packit 6c4009
    DW_MACINFO_end_file = 4,
Packit 6c4009
    DW_MACINFO_vendor_ext = 255
Packit 6c4009
  };
Packit 6c4009
Packit 6c4009
#endif /* !ASSEMBLER */
Packit 6c4009

Packit 6c4009
/* @@@ For use with GNU frame unwind information.  */
Packit 6c4009
Packit 6c4009
#define DW_EH_PE_absptr		0x00
Packit 6c4009
#define DW_EH_PE_omit		0xff
Packit 6c4009
Packit 6c4009
#define DW_EH_PE_uleb128	0x01
Packit 6c4009
#define DW_EH_PE_udata2		0x02
Packit 6c4009
#define DW_EH_PE_udata4		0x03
Packit 6c4009
#define DW_EH_PE_udata8		0x04
Packit 6c4009
#define DW_EH_PE_sleb128	0x09
Packit 6c4009
#define DW_EH_PE_sdata2		0x0A
Packit 6c4009
#define DW_EH_PE_sdata4		0x0B
Packit 6c4009
#define DW_EH_PE_sdata8		0x0C
Packit 6c4009
#define DW_EH_PE_signed		0x08
Packit 6c4009
Packit 6c4009
#define DW_EH_PE_pcrel		0x10
Packit 6c4009
#define DW_EH_PE_textrel	0x20
Packit 6c4009
#define DW_EH_PE_datarel	0x30
Packit 6c4009
#define DW_EH_PE_funcrel	0x40
Packit 6c4009
#define DW_EH_PE_aligned	0x50
Packit 6c4009
Packit 6c4009
#define DW_EH_PE_indirect	0x80
Packit 6c4009
Packit 6c4009
#endif /* dwarf2.h */