1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-21 23:45:08 +00:00
serenity/Userland/Libraries/LibWasm/Constants.h
Ali Mohammad Pur c4b82ace74 LibWasm: Limit the call stack depth and the number of executed insts
These limits are described in the spec, and we're supposed to stop
execution at some point.
The limits are arbitrarily chosen.
2021-06-22 00:26:25 +04:30

43 lines
1 KiB
C++

/*
* Copyright (c) 2021, Ali Mohammad Pur <mpfard@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Types.h>
namespace Wasm::Constants {
// Value
static constexpr auto i32_tag = 0x7f;
static constexpr auto i64_tag = 0x7e;
static constexpr auto f32_tag = 0x7d;
static constexpr auto f64_tag = 0x7c;
static constexpr auto function_reference_tag = 0x70;
static constexpr auto extern_reference_tag = 0x6f;
// Function
static constexpr auto function_signature_tag = 0x60;
// Global
static constexpr auto const_tag = 0x00;
static constexpr auto var_tag = 0x01;
// Block
static constexpr auto empty_block_tag = 0x40;
// Import section
static constexpr auto extern_function_tag = 0x00;
static constexpr auto extern_table_tag = 0x01;
static constexpr auto extern_memory_tag = 0x02;
static constexpr auto extern_global_tag = 0x03;
static constexpr auto page_size = 64 * KiB;
// Limits
static constexpr auto max_allowed_call_stack_depth = 1000;
static constexpr auto max_allowed_executed_instructions_per_call = 64 * 1024 * 1024;
}