forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
//===- ELFConfig.h ----------------------------------------------*- C++ -*-===//
 | 
						|
//
 | 
						|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
						|
// See https://llvm.org/LICENSE.txt for license information.
 | 
						|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_TOOLS_OBJCOPY_ELFCONFIG_H
 | 
						|
#define LLVM_TOOLS_OBJCOPY_ELFCONFIG_H
 | 
						|
 | 
						|
#include "llvm/ADT/Optional.h"
 | 
						|
#include "llvm/ADT/StringRef.h"
 | 
						|
#include "llvm/Object/ELFTypes.h"
 | 
						|
#include "llvm/Support/Error.h"
 | 
						|
#include <vector>
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
namespace objcopy {
 | 
						|
struct CopyConfig;
 | 
						|
 | 
						|
namespace elf {
 | 
						|
 | 
						|
struct NewSymbolInfo {
 | 
						|
  StringRef SymbolName;
 | 
						|
  StringRef SectionName;
 | 
						|
  uint64_t Value = 0;
 | 
						|
  uint8_t Type = ELF::STT_NOTYPE;
 | 
						|
  uint8_t Bind = ELF::STB_GLOBAL;
 | 
						|
  uint8_t Visibility = ELF::STV_DEFAULT;
 | 
						|
};
 | 
						|
 | 
						|
struct ELFCopyConfig {
 | 
						|
  Optional<uint8_t> NewSymbolVisibility;
 | 
						|
  std::vector<NewSymbolInfo> SymbolsToAdd;
 | 
						|
};
 | 
						|
 | 
						|
Expected<ELFCopyConfig> parseConfig(const CopyConfig &Config);
 | 
						|
 | 
						|
} // namespace elf
 | 
						|
} // namespace objcopy
 | 
						|
} // namespace llvm
 | 
						|
 | 
						|
#endif
 |