68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
// Copyright 2018 The OPA Authors. All rights reserved.
|
|
// Use of this source code is governed by an Apache2
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package constant contains WASM constant definitions.
|
|
package constant
|
|
|
|
// Magic bytes at the beginning of every WASM file ("\0asm").
|
|
const Magic = uint32(0x6D736100)
|
|
|
|
// Version defines the WASM version.
|
|
const Version = uint32(1)
|
|
|
|
// WASM module section IDs.
|
|
const (
|
|
CustomSectionID uint8 = iota
|
|
TypeSectionID
|
|
ImportSectionID
|
|
FunctionSectionID
|
|
TableSectionID
|
|
MemorySectionID
|
|
GlobalSectionID
|
|
ExportSectionID
|
|
StartSectionID
|
|
ElementSectionID
|
|
CodeSectionID
|
|
DataSectionID
|
|
)
|
|
|
|
// FunctionTypeID indicates the start of a function type definition.
|
|
const FunctionTypeID = byte(0x60)
|
|
|
|
// ValueType represents an intrinsic value type in WASM.
|
|
const (
|
|
ValueTypeF64 byte = iota + 0x7C
|
|
ValueTypeF32
|
|
ValueTypeI64
|
|
ValueTypeI32
|
|
)
|
|
|
|
// WASM import descriptor types.
|
|
const (
|
|
ImportDescType byte = iota
|
|
ImportDescTable
|
|
ImportDescMem
|
|
ImportDescGlobal
|
|
)
|
|
|
|
// WASM export descriptor types.
|
|
const (
|
|
ExportDescType byte = iota
|
|
ExportDescTable
|
|
ExportDescMem
|
|
ExportDescGlobal
|
|
)
|
|
|
|
// ElementTypeAnyFunc indicates the type of a table import.
|
|
const ElementTypeAnyFunc byte = 0x70
|
|
|
|
// BlockTypeEmpty represents a block type.
|
|
const BlockTypeEmpty byte = 0x40
|
|
|
|
// WASM global varialbe mutability flag.
|
|
const (
|
|
Const byte = iota
|
|
Mutable
|
|
)
|