#ifndef LLVM_BINARYFORMAT_WASM_H
#define LLVM_BINARYFORMAT_WASM_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include <optional>
namespace llvm {
namespace wasm {
const char WasmMagic[] = …;
const uint32_t WasmVersion = …;
const uint32_t WasmMetadataVersion = …;
const uint32_t WasmPageSize = …;
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
const unsigned WASM_ELEM_SEGMENT_MASK_HAS_ELEM_KIND = …;
enum : uint8_t { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum : unsigned { … };
enum WasmSymbolType : unsigned { … };
enum WasmSegmentFlag : unsigned { … };
enum WasmTagAttribute : uint8_t { … };
const unsigned WASM_SYMBOL_BINDING_MASK = …;
const unsigned WASM_SYMBOL_VISIBILITY_MASK = …;
const unsigned WASM_SYMBOL_BINDING_GLOBAL = …;
const unsigned WASM_SYMBOL_BINDING_WEAK = …;
const unsigned WASM_SYMBOL_BINDING_LOCAL = …;
const unsigned WASM_SYMBOL_VISIBILITY_DEFAULT = …;
const unsigned WASM_SYMBOL_VISIBILITY_HIDDEN = …;
const unsigned WASM_SYMBOL_UNDEFINED = …;
const unsigned WASM_SYMBOL_EXPORTED = …;
const unsigned WASM_SYMBOL_EXPLICIT_NAME = …;
const unsigned WASM_SYMBOL_NO_STRIP = …;
const unsigned WASM_SYMBOL_TLS = …;
const unsigned WASM_SYMBOL_ABSOLUTE = …;
#define WASM_RELOC …
enum : unsigned { … };
#undef WASM_RELOC
struct WasmObjectHeader { … };
enum class ValType { … };
struct WasmDylinkImportInfo { … };
struct WasmDylinkExportInfo { … };
struct WasmDylinkInfo { … };
struct WasmProducerInfo { … };
struct WasmFeatureEntry { … };
struct WasmExport { … };
struct WasmLimits { … };
struct WasmTableType { … };
struct WasmTable { … };
struct WasmInitExprMVP { … };
struct WasmInitExpr { … };
struct WasmGlobalType { … };
struct WasmGlobal { … };
struct WasmTag { … };
struct WasmImport { … };
struct WasmLocalDecl { … };
struct WasmFunction { … };
struct WasmDataSegment { … };
struct WasmElemSegment { … };
struct WasmDataReference { … };
struct WasmRelocation { … };
struct WasmInitFunc { … };
struct WasmSymbolInfo { … };
enum class NameType { … };
struct WasmDebugName { … };
struct WasmLinkingData { … };
struct WasmSignature { … };
inline bool operator==(const WasmSignature &LHS, const WasmSignature &RHS) { … }
inline bool operator!=(const WasmSignature &LHS, const WasmSignature &RHS) { … }
inline bool operator==(const WasmGlobalType &LHS, const WasmGlobalType &RHS) { … }
inline bool operator!=(const WasmGlobalType &LHS, const WasmGlobalType &RHS) { … }
inline bool operator==(const WasmLimits &LHS, const WasmLimits &RHS) { … }
inline bool operator==(const WasmTableType &LHS, const WasmTableType &RHS) { … }
llvm::StringRef toString(WasmSymbolType type);
llvm::StringRef relocTypetoString(uint32_t type);
llvm::StringRef sectionTypeToString(uint32_t type);
bool relocTypeHasAddend(uint32_t type);
}
}
#endif