UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_default_arena.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#ifndef SYMS_DEFAULT_ARENA_H
4#define SYMS_DEFAULT_ARENA_H
5
6// NOTE(allen): Statically "constructs" an implementation for syms's arena override macros from
7// reserve/commit/decommit/release macros
8
9#if !defined(syms_mem_reserve)
10# error SYMS: syms_mem_reserve was not #define'd.
11#endif
12#if !defined(syms_mem_commit)
13# error SYMS: syms_mem_commit was not #define'd.
14#endif
15#if !defined(syms_mem_decommit)
16# error SYMS: syms_mem_decommit was not #define'd.
17#endif
18#if !defined(syms_mem_release)
19# error SYMS: syms_mem_release was not #define'd.
20#endif
21
22#if !defined(SYMS_ENABLE_DEV_ARENA)
23# define SYMS_ENABLE_DEV_ARENA 0
24#endif
25
27// NOTE(allen): Arena Definition
28
29#define SYMS_ARENA_HEADER_SIZE 128
30
31// @usage @important When overriding these macros the following should hold
32// SYMS_ARENA_HEADER_SIZE < SYMS_ARENA_COMMIT_SIZE
33// SYMS_ARENA_COMMIT_SIZE <= SYMS_ARENA_RESERVE_SIZE
34
35#if !defined(SYMS_ARENA_RESERVE_SIZE)
36# define SYMS_ARENA_RESERVE_SIZE (64 << 20)
37#endif
38#if !defined(SYMS_ARENA_COMMIT_SIZE)
39# define SYMS_ARENA_COMMIT_SIZE (64 << 10)
40#endif
41
52
60
61#define SYMS_Arena SYMS_DefArena
62#define syms_arena_alloc__impl syms_arena_def_alloc
63#define syms_arena_release__impl syms_arena_def_release
64#define syms_arena_get_pos__impl syms_arena_def_pos
65#define syms_arena_push__impl syms_arena_def_push
66#define syms_arena_pop_to__impl syms_arena_def_pop_to
67#define syms_arena_set_auto_align__impl syms_arena_def_set_auto_align
68#define syms_arena_absorb__impl syms_arena_def_absorb
69#define syms_arena_tidy__impl(a) ((void)(a))
70
71#endif //SYMS_DEFAULT_ARENA_H
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_default_arena.h:42
SYMS_U64 pos
Definition syms_default_arena.h:46
struct SYMS_ArenaDev * dev
Definition syms_default_arena.h:50
SYMS_U64 align
Definition syms_default_arena.h:49
struct SYMS_DefArena * prev
Definition syms_default_arena.h:43
SYMS_U64 cap
Definition syms_default_arena.h:48
SYMS_U64 cmt
Definition syms_default_arena.h:47
struct SYMS_DefArena * current
Definition syms_default_arena.h:44
SYMS_U64 base_pos
Definition syms_default_arena.h:45
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
#define SYMS_OVERRIDE_FUNC
Definition syms_crt_overrides.h:7
SYMS_OVERRIDE_FUNC void syms_arena_def_absorb(SYMS_DefArena *arena, SYMS_DefArena *sub)
Definition syms_default_arena.c:163
SYMS_OVERRIDE_FUNC void syms_arena_def_set_auto_align(SYMS_DefArena *arena, SYMS_U64 pow2_align)
Definition syms_default_arena.c:158
SYMS_OVERRIDE_FUNC void syms_arena_def_pop_to(SYMS_DefArena *arena, SYMS_U64 pos)
Definition syms_default_arena.c:127
SYMS_OVERRIDE_FUNC SYMS_DefArena * syms_arena_def_alloc(void)
Definition syms_default_arena.c:31
SYMS_OVERRIDE_FUNC SYMS_DefArena * syms_arena_def_alloc__sized(SYMS_U64 init_res, SYMS_U64 init_cmt)
Definition syms_default_arena.c:7
SYMS_OVERRIDE_FUNC void * syms_arena_def_push(SYMS_DefArena *arena, SYMS_U64 size)
Definition syms_default_arena.c:49
SYMS_OVERRIDE_FUNC void syms_arena_def_release(SYMS_DefArena *arena)
Definition syms_default_arena.c:37