1*4d9fdb46SRobert Mustacchi #ifndef DWARF_XU_INDEX_H
2*4d9fdb46SRobert Mustacchi #define DWARF_XU_INDEX_H
3*4d9fdb46SRobert Mustacchi /*
4*4d9fdb46SRobert Mustacchi 
5*4d9fdb46SRobert Mustacchi   Copyright (C) 2014-2014 David Anderson. All Rights Reserved.
6*4d9fdb46SRobert Mustacchi 
7*4d9fdb46SRobert Mustacchi   This program is free software; you can redistribute it and/or modify it
8*4d9fdb46SRobert Mustacchi   under the terms of version 2.1 of the GNU Lesser General Public License
9*4d9fdb46SRobert Mustacchi   as published by the Free Software Foundation.
10*4d9fdb46SRobert Mustacchi 
11*4d9fdb46SRobert Mustacchi   This program is distributed in the hope that it would be useful, but
12*4d9fdb46SRobert Mustacchi   WITHOUT ANY WARRANTY; without even the implied warranty of
13*4d9fdb46SRobert Mustacchi   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14*4d9fdb46SRobert Mustacchi 
15*4d9fdb46SRobert Mustacchi   Further, this software is distributed without any warranty that it is
16*4d9fdb46SRobert Mustacchi   free of the rightful claim of any third person regarding infringement
17*4d9fdb46SRobert Mustacchi   or the like.  Any license provided herein, whether implied or
18*4d9fdb46SRobert Mustacchi   otherwise, applies only to this software file.  Patent licenses, if
19*4d9fdb46SRobert Mustacchi   any, provided herein do not apply to combinations of this program with
20*4d9fdb46SRobert Mustacchi   other software, or any other product whatsoever.
21*4d9fdb46SRobert Mustacchi 
22*4d9fdb46SRobert Mustacchi   You should have received a copy of the GNU Lesser General Public
23*4d9fdb46SRobert Mustacchi   License along with this program; if not, write the Free Software
24*4d9fdb46SRobert Mustacchi   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
25*4d9fdb46SRobert Mustacchi   USA.
26*4d9fdb46SRobert Mustacchi 
27*4d9fdb46SRobert Mustacchi 
28*4d9fdb46SRobert Mustacchi */
29*4d9fdb46SRobert Mustacchi 
30*4d9fdb46SRobert Mustacchi 
31*4d9fdb46SRobert Mustacchi 
32*4d9fdb46SRobert Mustacchi /*  The following is based on
33*4d9fdb46SRobert Mustacchi     The gdb online documentation at
34*4d9fdb46SRobert Mustacchi     https://gcc.gnu.org/wiki/DebugFissionDWP
35*4d9fdb46SRobert Mustacchi     and the draft DWARF5 standard.
36*4d9fdb46SRobert Mustacchi */
37*4d9fdb46SRobert Mustacchi 
38*4d9fdb46SRobert Mustacchi 
39*4d9fdb46SRobert Mustacchi struct Dwarf_Xu_Index_Header_s {
40*4d9fdb46SRobert Mustacchi     Dwarf_Debug      gx_dbg;
41*4d9fdb46SRobert Mustacchi     Dwarf_Small    * gx_section_data;
42*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_section_length;
43*4d9fdb46SRobert Mustacchi 
44*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_version;
45*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_column_count_sections;  /* N */
46*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_units_in_index;         /* U */
47*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_slots_in_hash;          /* S */
48*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_hash_table_offset;
49*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_index_table_offset;
50*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_section_offsets_headerline_offset;
51*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_section_offsets_offset;
52*4d9fdb46SRobert Mustacchi     Dwarf_Unsigned   gx_section_sizes_offset;
53*4d9fdb46SRobert Mustacchi     /*  Taken from gx_section_offsets_headerline, these
54*4d9fdb46SRobert Mustacchi         are the section ids. DW_SECT_* (0 - N-1) */
55*4d9fdb46SRobert Mustacchi     unsigned long    gx_section_id[9];
56*4d9fdb46SRobert Mustacchi 
57*4d9fdb46SRobert Mustacchi     /* "tu" or "cu" without the quotes, of course. NUL terminated.  */
58*4d9fdb46SRobert Mustacchi     char             gx_type[4];
59*4d9fdb46SRobert Mustacchi 
60*4d9fdb46SRobert Mustacchi     /* Do not free gx_section_name. */
61*4d9fdb46SRobert Mustacchi     const char     * gx_section_name;
62*4d9fdb46SRobert Mustacchi };
63*4d9fdb46SRobert Mustacchi 
64*4d9fdb46SRobert Mustacchi #endif  /* DWARF_XU_INDEX_H */
65