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