Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
Magic.h
Go to the documentation of this file.
1//===- llvm/BinaryFormat/Magic.h - File magic identification ----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_BINARYFORMAT_MAGIC_H
10#define LLVM_BINARYFORMAT_MAGIC_H
11
12#include <system_error>
13
14namespacellvm {
15classStringRef;
16classTwine;
17
18/// file_magic - An "enum class" enumeration of file types based on magic (the
19/// first N bytes of the file).
20structfile_magic {
21enumImpl {
22unknown = 0,///< Unrecognized file
23bitcode,///< Bitcode file
24clang_ast,///< Clang PCH or PCM
25archive,///< ar style archive file
26elf,///< ELF Unknown type
27elf_relocatable,///< ELF Relocatable object file
28elf_executable,///< ELF Executable image
29elf_shared_object,///< ELF dynamically linked shared lib
30elf_core,///< ELF core image
31goff_object,///< GOFF object file
32macho_object,///< Mach-O Object file
33macho_executable,///< Mach-O Executable
34macho_fixed_virtual_memory_shared_lib,///< Mach-O Shared Lib, FVM
35macho_core,///< Mach-O Core File
36macho_preload_executable,///< Mach-O Preloaded Executable
37macho_dynamically_linked_shared_lib,///< Mach-O dynlinked shared lib
38macho_dynamic_linker,///< The Mach-O dynamic linker
39macho_bundle,///< Mach-O Bundle file
40macho_dynamically_linked_shared_lib_stub,///< Mach-O Shared lib stub
41macho_dsym_companion,///< Mach-O dSYM companion file
42macho_kext_bundle,///< Mach-O kext bundle file
43macho_universal_binary,///< Mach-O universal binary
44macho_file_set,///< Mach-O file set binary
45minidump,///< Windows minidump file
46coff_cl_gl_object,///< Microsoft cl.exe's intermediate code file
47coff_object,///< COFF object file
48coff_import_library,///< COFF import library
49pecoff_executable,///< PECOFF executable file
50windows_resource,///< Windows compiled resource file (.res)
51xcoff_object_32,///< 32-bit XCOFF object file
52xcoff_object_64,///< 64-bit XCOFF object file
53wasm_object,///< WebAssembly Object file
54pdb,///< Windows PDB debug info file
55tapi_file,///< Text-based Dynamic Library Stub file
56cuda_fatbinary,///< CUDA Fatbinary object file
57offload_binary,///< LLVM offload object file
58dxcontainer_object,///< DirectX container file
59offload_bundle,///< Clang offload bundle file
60offload_bundle_compressed,///< Compressed clang offload bundle file
61spirv_object,///< A binary SPIR-V file
62 };
63
64boolis_object() const{return V !=unknown; }
65
66file_magic() =default;
67file_magic(Impl V) : V(V) {}
68operatorImpl() const{return V; }
69
70private:
71Impl V =unknown;
72};
73
74/// Identify the type of a binary file based on how magical it is.
75file_magicidentify_magic(StringRef magic);
76
77/// Get and identify \a path's type based on its content.
78///
79/// @param path Input path.
80/// @param result Set to the type of file, or file_magic::unknown.
81/// @returns errc::success if result has been successfully set, otherwise a
82/// platform-specific error_code.
83std::error_codeidentify_magic(const Twine &path, file_magic &result);
84}// namespace llvm
85
86#endif
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:AddressRanges.h:18
llvm::identify_magic
file_magic identify_magic(StringRef magic)
Identify the type of a binary file based on how magical it is.
Definition:Magic.cpp:33
llvm::file_magic
file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file)...
Definition:Magic.h:20
llvm::file_magic::is_object
bool is_object() const
Definition:Magic.h:64
llvm::file_magic::Impl
Impl
Definition:Magic.h:21
llvm::file_magic::coff_import_library
@ coff_import_library
COFF import library.
Definition:Magic.h:48
llvm::file_magic::pdb
@ pdb
Windows PDB debug info file.
Definition:Magic.h:54
llvm::file_magic::spirv_object
@ spirv_object
A binary SPIR-V file.
Definition:Magic.h:61
llvm::file_magic::elf_relocatable
@ elf_relocatable
ELF Relocatable object file.
Definition:Magic.h:27
llvm::file_magic::archive
@ archive
ar style archive file
Definition:Magic.h:25
llvm::file_magic::elf_shared_object
@ elf_shared_object
ELF dynamically linked shared lib.
Definition:Magic.h:29
llvm::file_magic::goff_object
@ goff_object
GOFF object file.
Definition:Magic.h:31
llvm::file_magic::minidump
@ minidump
Windows minidump file.
Definition:Magic.h:45
llvm::file_magic::macho_dynamically_linked_shared_lib
@ macho_dynamically_linked_shared_lib
Mach-O dynlinked shared lib.
Definition:Magic.h:37
llvm::file_magic::xcoff_object_64
@ xcoff_object_64
64-bit XCOFF object file
Definition:Magic.h:52
llvm::file_magic::elf_executable
@ elf_executable
ELF Executable image.
Definition:Magic.h:28
llvm::file_magic::macho_dynamically_linked_shared_lib_stub
@ macho_dynamically_linked_shared_lib_stub
Mach-O Shared lib stub.
Definition:Magic.h:40
llvm::file_magic::macho_preload_executable
@ macho_preload_executable
Mach-O Preloaded Executable.
Definition:Magic.h:36
llvm::file_magic::offload_bundle
@ offload_bundle
Clang offload bundle file.
Definition:Magic.h:59
llvm::file_magic::offload_bundle_compressed
@ offload_bundle_compressed
Compressed clang offload bundle file.
Definition:Magic.h:60
llvm::file_magic::macho_file_set
@ macho_file_set
Mach-O file set binary.
Definition:Magic.h:44
llvm::file_magic::dxcontainer_object
@ dxcontainer_object
DirectX container file.
Definition:Magic.h:58
llvm::file_magic::macho_kext_bundle
@ macho_kext_bundle
Mach-O kext bundle file.
Definition:Magic.h:42
llvm::file_magic::pecoff_executable
@ pecoff_executable
PECOFF executable file.
Definition:Magic.h:49
llvm::file_magic::offload_binary
@ offload_binary
LLVM offload object file.
Definition:Magic.h:57
llvm::file_magic::macho_universal_binary
@ macho_universal_binary
Mach-O universal binary.
Definition:Magic.h:43
llvm::file_magic::bitcode
@ bitcode
Bitcode file.
Definition:Magic.h:23
llvm::file_magic::macho_core
@ macho_core
Mach-O Core File.
Definition:Magic.h:35
llvm::file_magic::wasm_object
@ wasm_object
WebAssembly Object file.
Definition:Magic.h:53
llvm::file_magic::xcoff_object_32
@ xcoff_object_32
32-bit XCOFF object file
Definition:Magic.h:51
llvm::file_magic::windows_resource
@ windows_resource
Windows compiled resource file (.res)
Definition:Magic.h:50
llvm::file_magic::clang_ast
@ clang_ast
Clang PCH or PCM.
Definition:Magic.h:24
llvm::file_magic::elf_core
@ elf_core
ELF core image.
Definition:Magic.h:30
llvm::file_magic::macho_object
@ macho_object
Mach-O Object file.
Definition:Magic.h:32
llvm::file_magic::coff_object
@ coff_object
COFF object file.
Definition:Magic.h:47
llvm::file_magic::elf
@ elf
ELF Unknown type.
Definition:Magic.h:26
llvm::file_magic::macho_bundle
@ macho_bundle
Mach-O Bundle file.
Definition:Magic.h:39
llvm::file_magic::coff_cl_gl_object
@ coff_cl_gl_object
Microsoft cl.exe's intermediate code file.
Definition:Magic.h:46
llvm::file_magic::cuda_fatbinary
@ cuda_fatbinary
CUDA Fatbinary object file.
Definition:Magic.h:56
llvm::file_magic::macho_executable
@ macho_executable
Mach-O Executable.
Definition:Magic.h:33
llvm::file_magic::macho_dsym_companion
@ macho_dsym_companion
Mach-O dSYM companion file.
Definition:Magic.h:41
llvm::file_magic::unknown
@ unknown
Unrecognized file.
Definition:Magic.h:22
llvm::file_magic::macho_fixed_virtual_memory_shared_lib
@ macho_fixed_virtual_memory_shared_lib
Mach-O Shared Lib, FVM.
Definition:Magic.h:34
llvm::file_magic::macho_dynamic_linker
@ macho_dynamic_linker
The Mach-O dynamic linker.
Definition:Magic.h:38
llvm::file_magic::tapi_file
@ tapi_file
Text-based Dynamic Library Stub file.
Definition:Magic.h:55
llvm::file_magic::file_magic
file_magic(Impl V)
Definition:Magic.h:67
llvm::file_magic::file_magic
file_magic()=default

Generated on Sun Jul 20 2025 06:57:51 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp