blob: 991654adfa15a8351b2045641f0a668e292e5e87 [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// -*- Mode: C++ -*-
//
// Copyright (C) 2013-2021 Oracle, Inc.
//
// Author: Jose E. Marchesi
/// @file
///
/// This file contains declarations implementing the different status
/// in which a corpus read from an ELF file can result. It is used by
/// the readers based on ELF files, such as DWARF and CTF.
///
/// More generally, this file contains declarations related to
/// facilities shared by the various readers that handle the ELF
/// format, e.g, the DWARF and CTF realder.
#ifndef __ABG_ELF_READER_COMMON_H__
#define __ABG_ELF_READER_COMMON_H__
#include <string>
namespace abigail
{
/// The namespace for an ELF based reader.
namespace elf_reader
{
/// The status of the @ref read_corpus_from_elf() call.
enum status
{
/// The status is in an unknown state
STATUS_UNKNOWN = 0,
/// This status is for when the call went OK.
STATUS_OK = 1,
/// This status is for when the debug info could not be read.
STATUS_DEBUG_INFO_NOT_FOUND = 1 << 1,
/// This status is for when the alternate debug info could not be
/// found.
STATUS_ALT_DEBUG_INFO_NOT_FOUND = 1 << 2,
/// This status is for when the symbols of the ELF binaries could
/// not be read.
STATUS_NO_SYMBOLS_FOUND = 1 << 3,
};
std::string
status_to_diagnostic_string(status s);
status
operator|(status, status);
status
operator&(status, status);
status&
operator|=(status&, status);
status&
operator&=(status&, status);
}// end namespace elf_reader
}// end namespace abigail
#endif //__ABG_ELF_READER_COMMON_H__