(root)/
glibc-2.38/
sysdeps/
generic/
dwarf2.h
       1  /* Declarations and definitions of codes relating to the DWARF2 symbolic
       2     debugging information format.
       3     Copyright (C) 1992-2023 Free Software Foundation, Inc.
       4  
       5     This file is part of the GNU C Library.
       6  
       7     The GNU C Library is free software; you can redistribute it and/or
       8     modify it under the terms of the GNU Lesser General Public
       9     License as published by the Free Software Foundation; either
      10     version 2.1 of the License, or (at your option) any later version.
      11  
      12     The GNU C Library is distributed in the hope that it will be useful,
      13     but WITHOUT ANY WARRANTY; without even the implied warranty of
      14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15     Lesser General Public License for more details.
      16  
      17     You should have received a copy of the GNU Lesser General Public
      18     License along with the GNU C Library; if not, see
      19     <https://www.gnu.org/licenses/>.  */
      20  
      21  #ifndef _DWARF2_H
      22  #define _DWARF2_H	1
      23  
      24  /* This file is derived from the DWARF specification (a public document)
      25     Revision 2.0.0 (July 27, 1993) developed by the UNIX International
      26     Programming Languages Special Interest Group (UI/PLSIG) and distributed
      27     by UNIX International.  Copies of this specification are available from
      28     UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */
      29  
      30  /* This file is shared between GCC and GDB, and should not contain
      31     prototypes.  */
      32  
      33  #ifndef __ASSEMBLER__
      34  /* Tag names and codes.  */
      35  
      36  enum dwarf_tag
      37    {
      38      DW_TAG_padding = 0x00,
      39      DW_TAG_array_type = 0x01,
      40      DW_TAG_class_type = 0x02,
      41      DW_TAG_entry_point = 0x03,
      42      DW_TAG_enumeration_type = 0x04,
      43      DW_TAG_formal_parameter = 0x05,
      44      DW_TAG_imported_declaration = 0x08,
      45      DW_TAG_label = 0x0a,
      46      DW_TAG_lexical_block = 0x0b,
      47      DW_TAG_member = 0x0d,
      48      DW_TAG_pointer_type = 0x0f,
      49      DW_TAG_reference_type = 0x10,
      50      DW_TAG_compile_unit = 0x11,
      51      DW_TAG_string_type = 0x12,
      52      DW_TAG_structure_type = 0x13,
      53      DW_TAG_subroutine_type = 0x15,
      54      DW_TAG_typedef = 0x16,
      55      DW_TAG_union_type = 0x17,
      56      DW_TAG_unspecified_parameters = 0x18,
      57      DW_TAG_variant = 0x19,
      58      DW_TAG_common_block = 0x1a,
      59      DW_TAG_common_inclusion = 0x1b,
      60      DW_TAG_inheritance = 0x1c,
      61      DW_TAG_inlined_subroutine = 0x1d,
      62      DW_TAG_module = 0x1e,
      63      DW_TAG_ptr_to_member_type = 0x1f,
      64      DW_TAG_set_type = 0x20,
      65      DW_TAG_subrange_type = 0x21,
      66      DW_TAG_with_stmt = 0x22,
      67      DW_TAG_access_declaration = 0x23,
      68      DW_TAG_base_type = 0x24,
      69      DW_TAG_catch_block = 0x25,
      70      DW_TAG_const_type = 0x26,
      71      DW_TAG_constant = 0x27,
      72      DW_TAG_enumerator = 0x28,
      73      DW_TAG_file_type = 0x29,
      74      DW_TAG_friend = 0x2a,
      75      DW_TAG_namelist = 0x2b,
      76      DW_TAG_namelist_item = 0x2c,
      77      DW_TAG_packed_type = 0x2d,
      78      DW_TAG_subprogram = 0x2e,
      79      DW_TAG_template_type_param = 0x2f,
      80      DW_TAG_template_value_param = 0x30,
      81      DW_TAG_thrown_type = 0x31,
      82      DW_TAG_try_block = 0x32,
      83      DW_TAG_variant_part = 0x33,
      84      DW_TAG_variable = 0x34,
      85      DW_TAG_volatile_type = 0x35,
      86      /* SGI/MIPS Extensions */
      87      DW_TAG_MIPS_loop = 0x4081,
      88      /* GNU extensions */
      89      DW_TAG_format_label = 0x4101,	/* for FORTRAN 77 and Fortran 90 */
      90      DW_TAG_function_template = 0x4102,	/* for C++ */
      91      DW_TAG_class_template = 0x4103,	/* for C++ */
      92      DW_TAG_GNU_BINCL = 0x4104,
      93      DW_TAG_GNU_EINCL = 0x4105
      94    };
      95  
      96  #define DW_TAG_lo_user	0x4080
      97  #define DW_TAG_hi_user	0xffff
      98  
      99  /* flag that tells whether entry has a child or not */
     100  #define DW_children_no   0
     101  #define	DW_children_yes  1
     102  
     103  /* Form names and codes.  */
     104  enum dwarf_form
     105    {
     106      DW_FORM_addr = 0x01,
     107      DW_FORM_block2 = 0x03,
     108      DW_FORM_block4 = 0x04,
     109      DW_FORM_data2 = 0x05,
     110      DW_FORM_data4 = 0x06,
     111      DW_FORM_data8 = 0x07,
     112      DW_FORM_string = 0x08,
     113      DW_FORM_block = 0x09,
     114      DW_FORM_block1 = 0x0a,
     115      DW_FORM_data1 = 0x0b,
     116      DW_FORM_flag = 0x0c,
     117      DW_FORM_sdata = 0x0d,
     118      DW_FORM_strp = 0x0e,
     119      DW_FORM_udata = 0x0f,
     120      DW_FORM_ref_addr = 0x10,
     121      DW_FORM_ref1 = 0x11,
     122      DW_FORM_ref2 = 0x12,
     123      DW_FORM_ref4 = 0x13,
     124      DW_FORM_ref8 = 0x14,
     125      DW_FORM_ref_udata = 0x15,
     126      DW_FORM_indirect = 0x16
     127    };
     128  
     129  /* Attribute names and codes.  */
     130  
     131  enum dwarf_attribute
     132    {
     133      DW_AT_sibling = 0x01,
     134      DW_AT_location = 0x02,
     135      DW_AT_name = 0x03,
     136      DW_AT_ordering = 0x09,
     137      DW_AT_subscr_data = 0x0a,
     138      DW_AT_byte_size = 0x0b,
     139      DW_AT_bit_offset = 0x0c,
     140      DW_AT_bit_size = 0x0d,
     141      DW_AT_element_list = 0x0f,
     142      DW_AT_stmt_list = 0x10,
     143      DW_AT_low_pc = 0x11,
     144      DW_AT_high_pc = 0x12,
     145      DW_AT_language = 0x13,
     146      DW_AT_member = 0x14,
     147      DW_AT_discr = 0x15,
     148      DW_AT_discr_value = 0x16,
     149      DW_AT_visibility = 0x17,
     150      DW_AT_import = 0x18,
     151      DW_AT_string_length = 0x19,
     152      DW_AT_common_reference = 0x1a,
     153      DW_AT_comp_dir = 0x1b,
     154      DW_AT_const_value = 0x1c,
     155      DW_AT_containing_type = 0x1d,
     156      DW_AT_default_value = 0x1e,
     157      DW_AT_inline = 0x20,
     158      DW_AT_is_optional = 0x21,
     159      DW_AT_lower_bound = 0x22,
     160      DW_AT_producer = 0x25,
     161      DW_AT_prototyped = 0x27,
     162      DW_AT_return_addr = 0x2a,
     163      DW_AT_start_scope = 0x2c,
     164      DW_AT_stride_size = 0x2e,
     165      DW_AT_upper_bound = 0x2f,
     166      DW_AT_abstract_origin = 0x31,
     167      DW_AT_accessibility = 0x32,
     168      DW_AT_address_class = 0x33,
     169      DW_AT_artificial = 0x34,
     170      DW_AT_base_types = 0x35,
     171      DW_AT_calling_convention = 0x36,
     172      DW_AT_count = 0x37,
     173      DW_AT_data_member_location = 0x38,
     174      DW_AT_decl_column = 0x39,
     175      DW_AT_decl_file = 0x3a,
     176      DW_AT_decl_line = 0x3b,
     177      DW_AT_declaration = 0x3c,
     178      DW_AT_discr_list = 0x3d,
     179      DW_AT_encoding = 0x3e,
     180      DW_AT_external = 0x3f,
     181      DW_AT_frame_base = 0x40,
     182      DW_AT_friend = 0x41,
     183      DW_AT_identifier_case = 0x42,
     184      DW_AT_macro_info = 0x43,
     185      DW_AT_namelist_items = 0x44,
     186      DW_AT_priority = 0x45,
     187      DW_AT_segment = 0x46,
     188      DW_AT_specification = 0x47,
     189      DW_AT_static_link = 0x48,
     190      DW_AT_type = 0x49,
     191      DW_AT_use_location = 0x4a,
     192      DW_AT_variable_parameter = 0x4b,
     193      DW_AT_virtuality = 0x4c,
     194      DW_AT_vtable_elem_location = 0x4d,
     195      /* SGI/MIPS Extensions */
     196      DW_AT_MIPS_fde = 0x2001,
     197      DW_AT_MIPS_loop_begin = 0x2002,
     198      DW_AT_MIPS_tail_loop_begin = 0x2003,
     199      DW_AT_MIPS_epilog_begin = 0x2004,
     200      DW_AT_MIPS_loop_unroll_factor = 0x2005,
     201      DW_AT_MIPS_software_pipeline_depth = 0x2006,
     202      DW_AT_MIPS_linkage_name = 0x2007,
     203      DW_AT_MIPS_stride = 0x2008,
     204      DW_AT_MIPS_abstract_name = 0x2009,
     205      DW_AT_MIPS_clone_origin = 0x200a,
     206      DW_AT_MIPS_has_inlines = 0x200b,
     207      /* GNU extensions.  */
     208      DW_AT_sf_names = 0x2101,
     209      DW_AT_src_info = 0x2102,
     210      DW_AT_mac_info = 0x2103,
     211      DW_AT_src_coords = 0x2104,
     212      DW_AT_body_begin = 0x2105,
     213      DW_AT_body_end = 0x2106
     214    };
     215  
     216  #define DW_AT_lo_user	0x2000	/* implementation-defined range start */
     217  #define DW_AT_hi_user	0x3ff0	/* implementation-defined range end */
     218  
     219  /* Location atom names and codes.  */
     220  
     221  enum dwarf_location_atom
     222    {
     223      DW_OP_addr = 0x03,
     224      DW_OP_deref = 0x06,
     225      DW_OP_const1u = 0x08,
     226      DW_OP_const1s = 0x09,
     227      DW_OP_const2u = 0x0a,
     228      DW_OP_const2s = 0x0b,
     229      DW_OP_const4u = 0x0c,
     230      DW_OP_const4s = 0x0d,
     231      DW_OP_const8u = 0x0e,
     232      DW_OP_const8s = 0x0f,
     233      DW_OP_constu = 0x10,
     234      DW_OP_consts = 0x11,
     235      DW_OP_dup = 0x12,
     236      DW_OP_drop = 0x13,
     237      DW_OP_over = 0x14,
     238      DW_OP_pick = 0x15,
     239      DW_OP_swap = 0x16,
     240      DW_OP_rot = 0x17,
     241      DW_OP_xderef = 0x18,
     242      DW_OP_abs = 0x19,
     243      DW_OP_and = 0x1a,
     244      DW_OP_div = 0x1b,
     245      DW_OP_minus = 0x1c,
     246      DW_OP_mod = 0x1d,
     247      DW_OP_mul = 0x1e,
     248      DW_OP_neg = 0x1f,
     249      DW_OP_not = 0x20,
     250      DW_OP_or = 0x21,
     251      DW_OP_plus = 0x22,
     252      DW_OP_plus_uconst = 0x23,
     253      DW_OP_shl = 0x24,
     254      DW_OP_shr = 0x25,
     255      DW_OP_shra = 0x26,
     256      DW_OP_xor = 0x27,
     257      DW_OP_bra = 0x28,
     258      DW_OP_eq = 0x29,
     259      DW_OP_ge = 0x2a,
     260      DW_OP_gt = 0x2b,
     261      DW_OP_le = 0x2c,
     262      DW_OP_lt = 0x2d,
     263      DW_OP_ne = 0x2e,
     264      DW_OP_skip = 0x2f,
     265      DW_OP_lit0 = 0x30,
     266      DW_OP_lit1 = 0x31,
     267      DW_OP_lit2 = 0x32,
     268      DW_OP_lit3 = 0x33,
     269      DW_OP_lit4 = 0x34,
     270      DW_OP_lit5 = 0x35,
     271      DW_OP_lit6 = 0x36,
     272      DW_OP_lit7 = 0x37,
     273      DW_OP_lit8 = 0x38,
     274      DW_OP_lit9 = 0x39,
     275      DW_OP_lit10 = 0x3a,
     276      DW_OP_lit11 = 0x3b,
     277      DW_OP_lit12 = 0x3c,
     278      DW_OP_lit13 = 0x3d,
     279      DW_OP_lit14 = 0x3e,
     280      DW_OP_lit15 = 0x3f,
     281      DW_OP_lit16 = 0x40,
     282      DW_OP_lit17 = 0x41,
     283      DW_OP_lit18 = 0x42,
     284      DW_OP_lit19 = 0x43,
     285      DW_OP_lit20 = 0x44,
     286      DW_OP_lit21 = 0x45,
     287      DW_OP_lit22 = 0x46,
     288      DW_OP_lit23 = 0x47,
     289      DW_OP_lit24 = 0x48,
     290      DW_OP_lit25 = 0x49,
     291      DW_OP_lit26 = 0x4a,
     292      DW_OP_lit27 = 0x4b,
     293      DW_OP_lit28 = 0x4c,
     294      DW_OP_lit29 = 0x4d,
     295      DW_OP_lit30 = 0x4e,
     296      DW_OP_lit31 = 0x4f,
     297      DW_OP_reg0 = 0x50,
     298      DW_OP_reg1 = 0x51,
     299      DW_OP_reg2 = 0x52,
     300      DW_OP_reg3 = 0x53,
     301      DW_OP_reg4 = 0x54,
     302      DW_OP_reg5 = 0x55,
     303      DW_OP_reg6 = 0x56,
     304      DW_OP_reg7 = 0x57,
     305      DW_OP_reg8 = 0x58,
     306      DW_OP_reg9 = 0x59,
     307      DW_OP_reg10 = 0x5a,
     308      DW_OP_reg11 = 0x5b,
     309      DW_OP_reg12 = 0x5c,
     310      DW_OP_reg13 = 0x5d,
     311      DW_OP_reg14 = 0x5e,
     312      DW_OP_reg15 = 0x5f,
     313      DW_OP_reg16 = 0x60,
     314      DW_OP_reg17 = 0x61,
     315      DW_OP_reg18 = 0x62,
     316      DW_OP_reg19 = 0x63,
     317      DW_OP_reg20 = 0x64,
     318      DW_OP_reg21 = 0x65,
     319      DW_OP_reg22 = 0x66,
     320      DW_OP_reg23 = 0x67,
     321      DW_OP_reg24 = 0x68,
     322      DW_OP_reg25 = 0x69,
     323      DW_OP_reg26 = 0x6a,
     324      DW_OP_reg27 = 0x6b,
     325      DW_OP_reg28 = 0x6c,
     326      DW_OP_reg29 = 0x6d,
     327      DW_OP_reg30 = 0x6e,
     328      DW_OP_reg31 = 0x6f,
     329      DW_OP_breg0 = 0x70,
     330      DW_OP_breg1 = 0x71,
     331      DW_OP_breg2 = 0x72,
     332      DW_OP_breg3 = 0x73,
     333      DW_OP_breg4 = 0x74,
     334      DW_OP_breg5 = 0x75,
     335      DW_OP_breg6 = 0x76,
     336      DW_OP_breg7 = 0x77,
     337      DW_OP_breg8 = 0x78,
     338      DW_OP_breg9 = 0x79,
     339      DW_OP_breg10 = 0x7a,
     340      DW_OP_breg11 = 0x7b,
     341      DW_OP_breg12 = 0x7c,
     342      DW_OP_breg13 = 0x7d,
     343      DW_OP_breg14 = 0x7e,
     344      DW_OP_breg15 = 0x7f,
     345      DW_OP_breg16 = 0x80,
     346      DW_OP_breg17 = 0x81,
     347      DW_OP_breg18 = 0x82,
     348      DW_OP_breg19 = 0x83,
     349      DW_OP_breg20 = 0x84,
     350      DW_OP_breg21 = 0x85,
     351      DW_OP_breg22 = 0x86,
     352      DW_OP_breg23 = 0x87,
     353      DW_OP_breg24 = 0x88,
     354      DW_OP_breg25 = 0x89,
     355      DW_OP_breg26 = 0x8a,
     356      DW_OP_breg27 = 0x8b,
     357      DW_OP_breg28 = 0x8c,
     358      DW_OP_breg29 = 0x8d,
     359      DW_OP_breg30 = 0x8e,
     360      DW_OP_breg31 = 0x8f,
     361      DW_OP_regx = 0x90,
     362      DW_OP_fbreg = 0x91,
     363      DW_OP_bregx = 0x92,
     364      DW_OP_piece = 0x93,
     365      DW_OP_deref_size = 0x94,
     366      DW_OP_xderef_size = 0x95,
     367      DW_OP_nop = 0x96
     368    };
     369  
     370  #define DW_OP_lo_user	0x80	/* implementation-defined range start */
     371  #define DW_OP_hi_user	0xff	/* implementation-defined range end */
     372  
     373  /* Type encodings.  */
     374  
     375  enum dwarf_type
     376    {
     377      DW_ATE_void = 0x0,
     378      DW_ATE_address = 0x1,
     379      DW_ATE_boolean = 0x2,
     380      DW_ATE_complex_float = 0x3,
     381      DW_ATE_float = 0x4,
     382      DW_ATE_signed = 0x5,
     383      DW_ATE_signed_char = 0x6,
     384      DW_ATE_unsigned = 0x7,
     385      DW_ATE_unsigned_char = 0x8
     386    };
     387  
     388  #define	DW_ATE_lo_user 0x80
     389  #define	DW_ATE_hi_user 0xff
     390  
     391  /* Array ordering names and codes.  */
     392  enum dwarf_array_dim_ordering
     393    {
     394      DW_ORD_row_major = 0,
     395      DW_ORD_col_major = 1
     396    };
     397  
     398  /* access attribute */
     399  enum dwarf_access_attribute
     400    {
     401      DW_ACCESS_public = 1,
     402      DW_ACCESS_protected = 2,
     403      DW_ACCESS_private = 3
     404    };
     405  
     406  /* visibility */
     407  enum dwarf_visibility_attribute
     408    {
     409      DW_VIS_local = 1,
     410      DW_VIS_exported = 2,
     411      DW_VIS_qualified = 3
     412    };
     413  
     414  /* virtuality */
     415  enum dwarf_virtuality_attribute
     416    {
     417      DW_VIRTUALITY_none = 0,
     418      DW_VIRTUALITY_virtual = 1,
     419      DW_VIRTUALITY_pure_virtual = 2
     420    };
     421  
     422  /* case sensitivity */
     423  enum dwarf_id_case
     424    {
     425      DW_ID_case_sensitive = 0,
     426      DW_ID_up_case = 1,
     427      DW_ID_down_case = 2,
     428      DW_ID_case_insensitive = 3
     429    };
     430  
     431  /* calling convention */
     432  enum dwarf_calling_convention
     433    {
     434      DW_CC_normal = 0x1,
     435      DW_CC_program = 0x2,
     436      DW_CC_nocall = 0x3
     437    };
     438  
     439  #define DW_CC_lo_user 0x40
     440  #define DW_CC_hi_user 0xff
     441  
     442  /* inline attribute */
     443  enum dwarf_inline_attribute
     444    {
     445      DW_INL_not_inlined = 0,
     446      DW_INL_inlined = 1,
     447      DW_INL_declared_not_inlined = 2,
     448      DW_INL_declared_inlined = 3
     449    };
     450  
     451  /* discriminant lists */
     452  enum dwarf_discrim_list
     453    {
     454      DW_DSC_label = 0,
     455      DW_DSC_range = 1
     456    };
     457  
     458  /* line number opcodes */
     459  enum dwarf_line_number_ops
     460    {
     461      DW_LNS_extended_op = 0,
     462      DW_LNS_copy = 1,
     463      DW_LNS_advance_pc = 2,
     464      DW_LNS_advance_line = 3,
     465      DW_LNS_set_file = 4,
     466      DW_LNS_set_column = 5,
     467      DW_LNS_negate_stmt = 6,
     468      DW_LNS_set_basic_block = 7,
     469      DW_LNS_const_add_pc = 8,
     470      DW_LNS_fixed_advance_pc = 9
     471    };
     472  
     473  /* line number extended opcodes */
     474  enum dwarf_line_number_x_ops
     475    {
     476      DW_LNE_end_sequence = 1,
     477      DW_LNE_set_address = 2,
     478      DW_LNE_define_file = 3
     479    };
     480  
     481  /* call frame information */
     482  enum dwarf_call_frame_info
     483    {
     484      DW_CFA_advance_loc = 0x40,
     485      DW_CFA_offset = 0x80,
     486      DW_CFA_restore = 0xc0,
     487      DW_CFA_nop = 0x00,
     488      DW_CFA_set_loc = 0x01,
     489      DW_CFA_advance_loc1 = 0x02,
     490      DW_CFA_advance_loc2 = 0x03,
     491      DW_CFA_advance_loc4 = 0x04,
     492      DW_CFA_offset_extended = 0x05,
     493      DW_CFA_restore_extended = 0x06,
     494      DW_CFA_undefined = 0x07,
     495      DW_CFA_same_value = 0x08,
     496      DW_CFA_register = 0x09,
     497      DW_CFA_remember_state = 0x0a,
     498      DW_CFA_restore_state = 0x0b,
     499      DW_CFA_def_cfa = 0x0c,
     500      DW_CFA_def_cfa_register = 0x0d,
     501      DW_CFA_def_cfa_offset = 0x0e,
     502      DW_CFA_def_cfa_expression = 0x0f,
     503      DW_CFA_expression = 0x10,
     504      /* Dwarf 2.1 */
     505      DW_CFA_offset_extended_sf = 0x11,
     506      DW_CFA_def_cfa_sf = 0x12,
     507      DW_CFA_def_cfa_offset_sf = 0x13,
     508  
     509      /* SGI/MIPS specific */
     510      DW_CFA_MIPS_advance_loc8 = 0x1d,
     511  
     512      /* GNU extensions */
     513      DW_CFA_GNU_window_save = 0x2d,
     514      DW_CFA_GNU_args_size = 0x2e,
     515      DW_CFA_GNU_negative_offset_extended = 0x2f
     516    };
     517  
     518  #define DW_CIE_ID	  0xffffffff
     519  #define DW_CIE_VERSION	  1
     520  
     521  #define DW_CFA_extended   0
     522  #define DW_CFA_low_user   0x1c
     523  #define DW_CFA_high_user  0x3f
     524  
     525  #define DW_CHILDREN_no		     0x00
     526  #define DW_CHILDREN_yes		     0x01
     527  
     528  #define DW_ADDR_none		0
     529  
     530  /* Source language names and codes.  */
     531  
     532  enum dwarf_source_language
     533    {
     534      DW_LANG_C89 = 0x0001,
     535      DW_LANG_C = 0x0002,
     536      DW_LANG_Ada83 = 0x0003,
     537      DW_LANG_C_plus_plus = 0x0004,
     538      DW_LANG_Cobol74 = 0x0005,
     539      DW_LANG_Cobol85 = 0x0006,
     540      DW_LANG_Fortran77 = 0x0007,
     541      DW_LANG_Fortran90 = 0x0008,
     542      DW_LANG_Pascal83 = 0x0009,
     543      DW_LANG_Modula2 = 0x000a,
     544      DW_LANG_Java = 0x000b,
     545      DW_LANG_Mips_Assembler = 0x8001
     546    };
     547  
     548  
     549  #define DW_LANG_lo_user 0x8000	/* implementation-defined range start */
     550  #define DW_LANG_hi_user 0xffff	/* implementation-defined range start */
     551  
     552  /* Names and codes for macro information.  */
     553  
     554  enum dwarf_macinfo_record_type
     555    {
     556      DW_MACINFO_define = 1,
     557      DW_MACINFO_undef = 2,
     558      DW_MACINFO_start_file = 3,
     559      DW_MACINFO_end_file = 4,
     560      DW_MACINFO_vendor_ext = 255
     561    };
     562  
     563  #endif /* !ASSEMBLER */
     564  
     565  /* @@@ For use with GNU frame unwind information.  */
     566  
     567  #define DW_EH_PE_absptr		0x00
     568  #define DW_EH_PE_omit		0xff
     569  
     570  #define DW_EH_PE_uleb128	0x01
     571  #define DW_EH_PE_udata2		0x02
     572  #define DW_EH_PE_udata4		0x03
     573  #define DW_EH_PE_udata8		0x04
     574  #define DW_EH_PE_sleb128	0x09
     575  #define DW_EH_PE_sdata2		0x0A
     576  #define DW_EH_PE_sdata4		0x0B
     577  #define DW_EH_PE_sdata8		0x0C
     578  #define DW_EH_PE_signed		0x08
     579  
     580  #define DW_EH_PE_pcrel		0x10
     581  #define DW_EH_PE_textrel	0x20
     582  #define DW_EH_PE_datarel	0x30
     583  #define DW_EH_PE_funcrel	0x40
     584  #define DW_EH_PE_aligned	0x50
     585  
     586  #define DW_EH_PE_indirect	0x80
     587  
     588  #endif /* dwarf2.h */