| /* DWARF 2 section names. | 
 |  | 
 |    Copyright (C) 1990-2025 Free Software Foundation, Inc. | 
 |  | 
 |    This file is part of GDB. | 
 |  | 
 |    This program is free software; you can redistribute it and/or modify | 
 |    it under the terms of the GNU General Public License as published by | 
 |    the Free Software Foundation; either version 3 of the License, or | 
 |    (at your option) any later version. | 
 |  | 
 |    This program is distributed in the hope that it will be useful, | 
 |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |    GNU General Public License for more details. | 
 |  | 
 |    You should have received a copy of the GNU General Public License | 
 |    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
 |  | 
 | #ifndef GDB_DWARF2_SECT_NAMES_H | 
 | #define GDB_DWARF2_SECT_NAMES_H | 
 |  | 
 | /* Names for a dwarf2 debugging section.  The field NORMAL is the normal | 
 |    section name (usually from the DWARF standard), while the field COMPRESSED | 
 |    is the name of compressed sections.  If your object file format doesn't | 
 |    support compressed sections, the field COMPRESSED can be NULL.  Likewise, | 
 |    the debugging section is not supported, the field NORMAL can be NULL too. | 
 |    It doesn't make sense to have a NULL NORMAL field but a non-NULL COMPRESSED | 
 |    field.  */ | 
 |  | 
 | struct dwarf2_section_names { | 
 |   const char *normal; | 
 |   const char *compressed; | 
 |  | 
 |   /* Return true if NAME matches either of this section's names.  */ | 
 |   bool matches (const char *name) const | 
 |   { | 
 |     return ((normal != nullptr && strcmp (name, normal) == 0) | 
 | 	    || (compressed != nullptr && strcmp (name, compressed) == 0)); | 
 |   } | 
 | }; | 
 |  | 
 | /* List of names for dward2 debugging sections.  Also most object file formats | 
 |    use the standardized (ie ELF) names, some (eg XCOFF) have customized names | 
 |    due to restrictions. | 
 |    The table for the standard names is defined in dwarf2read.c.  Please | 
 |    update all instances of dwarf2_debug_sections if you add a field to this | 
 |    structure.  It is always safe to use { NULL, NULL } in this case.  */ | 
 |  | 
 | struct dwarf2_debug_sections { | 
 |   struct dwarf2_section_names info; | 
 |   struct dwarf2_section_names abbrev; | 
 |   struct dwarf2_section_names line; | 
 |   struct dwarf2_section_names loc; | 
 |   struct dwarf2_section_names loclists; | 
 |   struct dwarf2_section_names macinfo; | 
 |   struct dwarf2_section_names macro; | 
 |   struct dwarf2_section_names str; | 
 |   struct dwarf2_section_names str_offsets; | 
 |   struct dwarf2_section_names line_str; | 
 |   struct dwarf2_section_names ranges; | 
 |   struct dwarf2_section_names rnglists; | 
 |   struct dwarf2_section_names types; | 
 |   struct dwarf2_section_names addr; | 
 |   struct dwarf2_section_names frame; | 
 |   struct dwarf2_section_names eh_frame; | 
 |   struct dwarf2_section_names gdb_index; | 
 |   struct dwarf2_section_names debug_names; | 
 |   struct dwarf2_section_names debug_aranges; | 
 |   /* This field has no meaning, but exists solely to catch changes to | 
 |      this structure which are not reflected in some instance.  */ | 
 |   int sentinel; | 
 | }; | 
 |  | 
 | /* Section names for ELF.  */ | 
 | extern const struct dwarf2_debug_sections dwarf2_elf_names; | 
 |  | 
 | #endif /* GDB_DWARF2_SECT_NAMES_H */ |