/* Definition of objfile flags. Copyright (C) 1992-2020 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/>. */ #if !defined (OBJFILE_FLAGS_H) #define OBJFILE_FLAGS_H #include "gdbsupport/enum-flags.h" /* Defines for the objfile flags field. Defined in a separate file to break circular header dependencies. */ enum objfile_flag : unsigned { /* When an object file has its functions reordered (currently Irix-5.2 shared libraries exhibit this behaviour), we will need an expensive algorithm to locate a partial symtab or symtab via an address. To avoid this penalty for normal object files, we use this flag, whose setting is determined upon symbol table read in. */ OBJF_REORDERED = 1 << 0, /* Functions are reordered */ /* Distinguish between an objfile for a shared library and a "vanilla" objfile. This may come from a target's implementation of the solib interface, from add-symbol-file, or any other mechanism that loads dynamic objects. */ OBJF_SHARED = 1 << 1, /* From a shared library */ /* User requested that this objfile be read in it's entirety. */ OBJF_READNOW = 1 << 2, /* Immediate full read */ /* This objfile was created because the user explicitly caused it (e.g., used the add-symbol-file command). This bit offers a way for run_command to remove old objfile entries which are no longer valid (i.e., are associated with an old inferior), but to preserve ones that the user explicitly loaded via the add-symbol-file command. */ OBJF_USERLOADED = 1 << 3, /* User loaded */ /* Set if we have tried to read partial symtabs for this objfile. This is used to allow lazy reading of partial symtabs. */ OBJF_PSYMTABS_READ = 1 << 4, /* Set if this is the main symbol file (as opposed to symbol file for dynamically loaded code). */ OBJF_MAINLINE = 1 << 5, /* ORIGINAL_NAME and OBFD->FILENAME correspond to text description unrelated to filesystem names. It can be for example "<image in memory>". */ OBJF_NOT_FILENAME = 1 << 6, /* User requested that we do not read this objfile's symbolic information. */ OBJF_READNEVER = 1 << 7, }; DEF_ENUM_FLAGS_TYPE (enum objfile_flag, objfile_flags); #endif /* !defined (OBJFILE_FLAGS_H) */