| /* Definition of objfile flags. |
| |
| Copyright (C) 1992-2021 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) */ |