149d3bc91SRichard Lowe /* 249d3bc91SRichard Lowe 307dc1947SRichard Lowe Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved. 449d3bc91SRichard Lowe 549d3bc91SRichard Lowe This program is free software; you can redistribute it and/or modify it 6*4d9fdb46SRobert Mustacchi under the terms of version 2.1 of the GNU Lesser General Public License 749d3bc91SRichard Lowe as published by the Free Software Foundation. 849d3bc91SRichard Lowe 949d3bc91SRichard Lowe This program is distributed in the hope that it would be useful, but 1049d3bc91SRichard Lowe WITHOUT ANY WARRANTY; without even the implied warranty of 11*4d9fdb46SRobert Mustacchi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1249d3bc91SRichard Lowe 1349d3bc91SRichard Lowe Further, this software is distributed without any warranty that it is 14*4d9fdb46SRobert Mustacchi free of the rightful claim of any third person regarding infringement 15*4d9fdb46SRobert Mustacchi or the like. Any license provided herein, whether implied or 1649d3bc91SRichard Lowe otherwise, applies only to this software file. Patent licenses, if 17*4d9fdb46SRobert Mustacchi any, provided herein do not apply to combinations of this program with 18*4d9fdb46SRobert Mustacchi other software, or any other product whatsoever. 1949d3bc91SRichard Lowe 2007dc1947SRichard Lowe You should have received a copy of the GNU Lesser General Public 2107dc1947SRichard Lowe License along with this program; if not, write the Free Software 2207dc1947SRichard Lowe Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301, 2349d3bc91SRichard Lowe USA. 2449d3bc91SRichard Lowe 2549d3bc91SRichard Lowe */ 2649d3bc91SRichard Lowe 2749d3bc91SRichard Lowe 2849d3bc91SRichard Lowe 2949d3bc91SRichard Lowe 30*4d9fdb46SRobert Mustacchi /* 31*4d9fdb46SRobert Mustacchi This struct holds the abbreviation table, before they are written 32*4d9fdb46SRobert Mustacchi on disk. Holds a linked list of abbreviations, each consisting of 33*4d9fdb46SRobert Mustacchi a bitmap for attributes and a bitmap for forms 3449d3bc91SRichard Lowe */ 3549d3bc91SRichard Lowe typedef struct Dwarf_P_Abbrev_s *Dwarf_P_Abbrev; 3649d3bc91SRichard Lowe 3749d3bc91SRichard Lowe struct Dwarf_P_Abbrev_s { 38*4d9fdb46SRobert Mustacchi Dwarf_Unsigned abb_idx; /* index of abbreviation */ 39*4d9fdb46SRobert Mustacchi Dwarf_Tag abb_tag; /* tag of die */ 40*4d9fdb46SRobert Mustacchi Dwarf_Ubyte abb_children; /* if children are present */ 41*4d9fdb46SRobert Mustacchi Dwarf_Unsigned *abb_attrs; /* holds names of attrs */ 42*4d9fdb46SRobert Mustacchi Dwarf_Unsigned *abb_forms; /* forms of attributes */ 43*4d9fdb46SRobert Mustacchi 44*4d9fdb46SRobert Mustacchi /* 0 but if DW_FORM_implicit_value is value */ 45*4d9fdb46SRobert Mustacchi Dwarf_Signed *abb_implicits; 46*4d9fdb46SRobert Mustacchi int abb_n_attr; /* num of attrs = # of forms */ 4749d3bc91SRichard Lowe Dwarf_P_Abbrev abb_next; 4849d3bc91SRichard Lowe }; 4949d3bc91SRichard Lowe 5049d3bc91SRichard Lowe /* used in pro_section.c */ 5149d3bc91SRichard Lowe 5249d3bc91SRichard Lowe int _dwarf_pro_add_AT_fde(Dwarf_P_Debug dbg, Dwarf_P_Die die, 53*4d9fdb46SRobert Mustacchi Dwarf_Unsigned offset, Dwarf_Error * error); 5449d3bc91SRichard Lowe 5549d3bc91SRichard Lowe int _dwarf_pro_add_AT_stmt_list(Dwarf_P_Debug dbg, 56*4d9fdb46SRobert Mustacchi Dwarf_P_Die first_die, 57*4d9fdb46SRobert Mustacchi Dwarf_Error * error); 58*4d9fdb46SRobert Mustacchi 5949d3bc91SRichard Lowe 6049d3bc91SRichard Lowe int _dwarf_pro_add_AT_macro_info(Dwarf_P_Debug dbg, 61*4d9fdb46SRobert Mustacchi Dwarf_P_Die first_die, 62*4d9fdb46SRobert Mustacchi Dwarf_Unsigned offset, 63*4d9fdb46SRobert Mustacchi Dwarf_Error * error); 64*4d9fdb46SRobert Mustacchi 65*4d9fdb46SRobert Mustacchi int _dwarf_pro_set_string_attr(Dwarf_P_Attribute new_attr, 66*4d9fdb46SRobert Mustacchi Dwarf_P_Debug dbg, 67*4d9fdb46SRobert Mustacchi char *name, 68*4d9fdb46SRobert Mustacchi Dwarf_Error *error); 69*4d9fdb46SRobert Mustacchi 70*4d9fdb46SRobert Mustacchi /* adds an attribute to a die */ 71*4d9fdb46SRobert Mustacchi void _dwarf_pro_add_at_to_die(Dwarf_P_Die die, Dwarf_P_Attribute attr); 72