UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_base.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2/* date = March 31st 2021 0:31 pm */
3
4#ifndef SYMS_BASE_H
5#define SYMS_BASE_H
6
8//~ allen: Version
9
10#define SYMS_VERSION_MAJOR 1
11#define SYMS_VERSION_MINOR 0
12#define SYMS_VERSION_SUBMINOR 0
13#define SYMS_VERSION_STR "1.0.0"
14
16//~ rjf: Context Cracking
17
19
21//~ rjf: Overrideables
22
24
26//~ allen: Linkage Macros
27
28#if !defined(SYMS_API)
29# define SYMS_API static
30#endif
31
32#if SYMS_LANG_CPP
33# define SYMS_C_LINKAGE_BEGIN extern "C" {
34# define SYMS_C_LINKAGE_END }
35# define SYMS_EXTERN extern "C"
36#else
37# define SYMS_C_LINKAGE_BEGIN
38# define SYMS_C_LINKAGE_END
39# define SYMS_EXTERN extern
40#endif
41
42#define SYMS_GLOBAL static
43#define SYMS_LOCAL static
44
45#if !defined(SYMS_READ_ONLY)
46# if SYMS_COMPILER_CL || (SYMS_COMPILER_CLANG && SYMS_OS_WINDOWS)
47# pragma section(".roglob", read)
48# define SYMS_READ_ONLY __declspec(allocate(".roglob"))
49# elif (SYMS_COMPILER_CLANG && SYMS_OS_LINUX)
50# define SYMS_READ_ONLY __attribute__((section(".rodata")))
51# else
52// NOTE(rjf): I don't know of a useful way to do this in GCC land.
53// __attribute__((section(".rodata"))) looked promising, but it introduces a
54// strange warning about malformed section attributes, and it doesn't look
55// like writing to that section reliably produces access violations, strangely
56// enough. (It does on Clang)
57# define SYMS_READ_ONLY
58# endif
59#endif
60
61#if SYMS_COMPILER_CL
62# define SYMS_THREAD_LOCAL __declspec(thread)
63#elif SYMS_COMPILER_CLANG || SYMS_COMPILER_GCC
64# define SYMS_THREAD_LOCAL __thread
65#else
66# error No SYMS_THREAD_LOCAL for this compiler
67#endif
68
70//~ allen: Feature Macros
71
72#if !defined(SYMS_PARANOID)
73# define SYMS_PARANOID 0
74#endif
75#if !defined(SYMS_ASSERT_INVARIANTS)
76# define SYMS_ASSERT_INVARIANTS 0
77#endif
78#if !defined(SYMS_DISABLE_NORMAL_ASSERTS)
79# define SYMS_DISABLE_NORMAL_ASSERTS 0
80#endif
81#if !defined(SYMS_ENABLE_DEV_SRCLOC)
82# define SYMS_ENABLE_DEV_SRCLOC 0
83#endif
84#if !defined(SYMS_ENABLE_DEV_STRING)
85# define SYMS_ENABLE_DEV_STRING 0
86#endif
87#if !defined(SYMS_ENABLE_DEV_LOG)
88# define SYMS_ENABLE_DEV_LOG 0
89#endif
90#if !defined(SYMS_ENABLE_DEV_PROFILE)
91# define SYMS_ENABLE_DEV_PROFILE 0
92#endif
93
95//~ rjf: Base Types and Constants
96
101typedef float SYMS_F32;
102typedef double SYMS_F64;
103
104#define syms_false 0
105#define syms_true 1
106
108
110//~ allen: Macros
111
112#if !defined(syms_write_srcloc__impl)
113# define syms_write_srcloc__impl(f,l) ((void)0)
114#endif
115#if SYMS_ENABLE_DEV_SRCLOC
116# define SYMS_WRITE_SRCLOC(f,l) syms_write_srcloc__impl(f,l)
117#else
118# define SYMS_WRITE_SRCLOC(f,l) ((void)0)
119#endif
120
121
122#define SYMS_ASSERT_RAW(x) do { if(!(x)) { SYMS_ASSERT_BREAK(x); } } while(0)
123
124#if !SYMS_DISABLE_NORMAL_ASSERTS
125# define SYMS_ASSERT(x) SYMS_ASSERT_RAW(x)
126#else
127# define SYMS_ASSERT(x)
128#endif
129#if SYMS_PARANOID
130# define SYMS_ASSERT_PARANOID(x) SYMS_ASSERT_RAW(x)
131#else
132# define SYMS_ASSERT_PARANOID(x)
133#endif
134
135#if SYMS_ASSERT_INVARIANTS
136# define SYMS_INVARIANT(r,x) SYMS_ASSERT_RAW(x)
137#else
138# define SYMS_INVARIANT(r,x) do{ if (!(x)){ (r) = syms_false; goto finish_invariants; } } while(0)
139#endif
140
141#define SYMS_NOT_IMPLEMENTED SYMS_ASSERT_BREAK("not implemented")
142#define SYMS_INVALID_CODE_PATH SYMS_ASSERT_BREAK("invalid code path")
143
144#define SYMS_ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0]))
145
146
147#define SYMS_PTR_DIF(a, b) (SYMS_U64)((SYMS_U8*)(a) - (SYMS_U8*)(b))
148#define SYMS_MEMBER(type, member) (&((type*)0)->member)
149#define SYMS_MEMBER_OFFSET(type, member) (SYMS_PTR_DIF(SYMS_MEMBER(type, member), 0))
150
151#define SYMS_KB(num) ((SYMS_U64)(num) << 10)
152#define SYMS_MB(num) ((SYMS_U64)(num) << 20)
153#define SYMS_GB(num) ((SYMS_U64)(num) << 30)
154#define SYMS_TB(num) ((SYMS_U64)(num) << 40)
155
156#define SYMS_Stringify_(x) #x
157#define SYMS_Stringify(x) SYMS_Stringify_(x)
158#define SYMS_Glue_(a,b) a ## b
159#define SYMS_Glue(a,b) SYMS_Glue_(a,b)
160
161#define syms_memzero_struct(s) syms_memset((s), 0, sizeof(*(s)))
162#define syms_memisnull_struct(s) syms_memisnull((s), sizeof(*(s)))
163
164#define SYMS_S8_MIN 0x80 // -128
165#define SYMS_S8_MAX 0x7f // +127
166#define SYMS_S16_MIN 0x8000 // -32768
167#define SYMS_S16_MAX 0x7fff // +32767
168#define SYMS_S32_MIN 0x80000000 // -2147483648
169#define SYMS_S32_MAX 0x7fffffff // +2147483647
170#define SYMS_S64_MIN 0x8000000000000000ull // -9223372036854775808
171#define SYMS_S64_MAX 0x7fffffffffffffffull // +9223372036854775807
172
173#define SYMS_U8_MAX 0xFFu
174#define SYMS_U16_MAX 0xFFFFu
175#define SYMS_U32_MAX 0xFFFFFFFFu
176#define SYMS_U64_MAX 0xFFFFFFFFFFFFFFFFu
177
178#define SYMS_STATIC_ASSERT(c) typedef char SYMS_Glue(assert, __LINE__)[(c)?+1:-1]
179#define SYMS_MIN(a,b) ((a)<(b)?(a):(b))
180#define SYMS_MAX(a,b) ((a)>(b)?(a):(b))
181
182#define SYMS_ClampTop(a,b) SYMS_MIN(a,b)
183#define SYMS_ClampBot(a,b) SYMS_MAX(a,b)
184
185#define SYMS_CeilIntegerDiv(a,b) (((a) + (b) - 1)/(b))
186
187#define SYMS_AlignPow2(a,b) (((a) + (b) - 1)&(~((b) - 1)))
188#define SYMS_AlignDownPow2(a,b) ((a)&(~((b) - 1)))
189
190#define SYMS_Swap(T,a,b) do{ T t__ = (a); (a) = (b); (b) = t__; }while(0)
191
192#define SYMS_THIS_SRCLOC __FILE__ ":" SYMS_Stringify(__LINE__)
193
195//~ allen: ID Macros
196
197#define SYMS_ID_u32_0(id) (SYMS_U32)(id)
198#define SYMS_ID_u32_1(id) (SYMS_U32)((id) >> 32)
199#define SYMS_ID_u16_0(id) (SYMS_U16)(id)
200#define SYMS_ID_u16_1(id) (SYMS_U16)((id) >> 16)
201#define SYMS_ID_u16_2(id) (SYMS_U16)((id) >> 32)
202#define SYMS_ID_u16_3(id) (SYMS_U16)((id) >> 48)
203
204#define SYMS_ID_u32_u32(a,b) ((SYMS_U64)(a) | ((SYMS_U64)(b) << 32))
205#define SYMS_ID_u16_u16_u32(a,b,c) ((SYMS_U64)(a) | ((SYMS_U64)(b) << 16) | ((SYMS_U64)(c) << 32))
206
208//~ allen: Linked List Macros
209
210#define SYMS_QueuePush_N(f,l,n,next) ( (f)==0?\
211((f)=(l)=(n),(n)->next=0):\
212((l)->next=(n),(l)=(n),(n)->next=0) )
213#define SYMS_QueuePushFront_N(f,l,n,next) ( (f)==0?\
214((f)=(l)=(n),(n)->next=0):\
215((n)->next=(f),(f)=(n)) )
216#define SYMS_QueuePop_N(f,l,next) ( (f)==(l)?\
217(f)=(l)=0:\
218((f)=(f)->next) )
219
220#define SYMS_QueuePush(f,l,n) SYMS_QueuePush_N(f,l,n,next)
221#define SYMS_QueuePushFront(f,l,n) SYMS_QueuePushFront_N(f,l,n,next)
222#define SYMS_QueuePop(f,l) SYMS_QueuePop_N(f,l,next)
223
224#define SYMS_StackPush_N(f,n,next) ( (n)->next=(f), (f)=(n) )
225#define SYMS_StackPop_N(f,next) ( (f)=(f)->next )
226
227#define SYMS_StackPush(f,n) SYMS_StackPush_N(f,n,next)
228#define SYMS_StackPop(f) SYMS_StackPop_N(f,next)
229
231//~ allen: Common Basic Types
232
237
242
247
253
258
263
268
273
279
284
289
295
300
305
312
317
319enum{
323};
324
330
332//~ allen: Syms Sort Node
333
339
341//~ allen: Generated Types
342
344
346//~ rjf: Serial Information
347
358
365
370
377
389
398
400//~ allen: Syms Arena
401
406
408//~ allen: Memory Views
409
410typedef struct SYMS_MemoryView{
411 // allen: Upgrade path:
412 // 1. A list of ranges like this one
413 // 2. After building the list put into a binary-searchable format
414 // 3. Equip with the ability to request missing memory in-line.
415 void *data;
419
426
427
429//~ allen: Generated Serial Info
430
432
433
435
437//~ rjf: Library Metadata
438
440
442//~ rjf: Basic Type Functions
443
447
449//~ allen: Hash Functions
450
454
456
458//~ rjf: Serial Information Functions
459
460#define syms_serial_type(name) (_syms_serial_type_##name)
461#define syms_string_from_enum_value(enum_type, value) \
462(syms_serial_value_from_enum_value(&syms_serial_type(enum_type), value)->name)
463#define syms_bswap_in_place(type, ptr) syms_bswap_in_place__##type((type*)(ptr))
464
468
471
473
475
477//~ allen: String Functions
478
481
482#define syms_str8_comp(s) { (SYMS_U8 *)(s), sizeof(s) - 1 }
483#define syms_str8_lit(s) syms_str8((SYMS_U8 *)(s), sizeof(s) - 1)
484#define syms_expand_string(s) (int)((s).size), ((s).str)
485
489
491
494
496 SYMS_String8 string);
498 SYMS_String8 string);
502
503
506
508
510
512//~ allen: String <-> Integer
513
516
518
520//~ rjf: U64 Range Functions
521
525
527
529//~ nick: U64 List Functions
530
535
537//~ allen: Array Functions
538
540
542//~ rjf: Memory/Arena Functions
543
544#define syms_arena_alloc syms_arena_alloc__impl
545#define syms_arena_release syms_arena_release__impl
546#define syms_arena_get_pos syms_arena_get_pos__impl
547#define syms_arena_push syms_arena_push__impl
548#define syms_arena_pop_to syms_arena_pop_to__impl
549#define syms_arena_set_auto_align syms_arena_set_auto_align__impl
550#define syms_arena_absorb syms_arena_absorb__impl
551#define syms_arena_tidy syms_arena_tidy__impl
552
553#define syms_get_implicit_thread_arena syms_get_implicit_thread_arena__impl
554
557
560
561#define syms_push_array(a,T,c) (SYMS_WRITE_SRCLOC(__FILE__, __LINE__),\
562(T*)syms_arena_push((a), sizeof(T)*(c)))
563
564#define syms_push_array_zero(a,T,c) ((T*)syms_memset(syms_push_array(a,T,c), 0, sizeof(T)*(c)))
565
567#define syms_release_scratch syms_arena_temp_end
568
569#define syms_scratch_pool_tidy syms_scratch_pool_tidy__impl
570
572//~ allen: Syms Sort Node
573
575 SYMS_U64 first, SYMS_U64 opl);
576
578//~ allen: Thread Lanes
579
582
584//~ rjf: Based Ranges
585
586SYMS_API void * syms_based_range_ptr(void *base, SYMS_U64Range range, SYMS_U64 offset);
590
592
593#define syms_based_range_read_struct(b,r,o,p) syms_based_range_read((b), (r), (o), sizeof(*(p)), p)
594
596//~ allen: Memory Views
597
600 SYMS_U64 size, void *ptr);
601
602#define syms_memory_view_read_struct(s,a,p) syms_memory_view_read((s),(a),sizeof(*(p)),(p))
603
605
607//~ nick: Bit manipulations
608
612SYMS_API void syms_bswap_bytes(void *p, SYMS_U64 size);
613
615//~ allen: Dev Features
616
617#include "syms_dev.h"
618
620
621#endif // SYMS_BASE_H
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool left(const int *a, const int *b, const int *c)
Definition RecastMesh.cpp:182
char * dst
Definition lz4.h:735
float v
Definition radaudio_mdct.cpp:62
Definition syms_base.h:402
SYMS_Arena * arena
Definition syms_base.h:403
SYMS_U64 pos
Definition syms_base.h:404
Definition syms_base.h:410
SYMS_U64 addr_first
Definition syms_base.h:416
SYMS_U64 addr_opl
Definition syms_base.h:417
void * data
Definition syms_base.h:415
Definition syms_base.h:359
SYMS_U32 width_var
Definition syms_base.h:363
SYMS_SerialWidthKind width_kind
Definition syms_base.h:362
struct SYMS_SerialType * type
Definition syms_base.h:361
SYMS_String8 name
Definition syms_base.h:360
Definition syms_base.h:371
struct SYMS_SerialType * type
Definition syms_base.h:373
SYMS_U32 bitshift
Definition syms_base.h:375
SYMS_String8 name
Definition syms_base.h:372
SYMS_U32 mask
Definition syms_base.h:374
Definition syms_base.h:390
SYMS_U64 basic_size
Definition syms_base.h:395
SYMS_String8 name
Definition syms_base.h:391
SYMS_U64(* enum_index_from_value)(SYMS_U64 value)
Definition syms_base.h:396
void * children
Definition syms_base.h:394
SYMS_SerialTypeKind kind
Definition syms_base.h:392
SYMS_U32 child_count
Definition syms_base.h:393
Definition syms_base.h:366
SYMS_U64 value
Definition syms_base.h:368
SYMS_String8 name
Definition syms_base.h:367
Definition syms_base.h:334
SYMS_U64 opl
Definition syms_base.h:337
SYMS_U64 first
Definition syms_base.h:336
struct SYMS_SortNode * next
Definition syms_base.h:335
Definition syms_base.h:313
SYMS_String8 * strings
Definition syms_base.h:314
SYMS_U64 count
Definition syms_base.h:315
Definition syms_base.h:306
SYMS_String8Node * first
Definition syms_base.h:307
SYMS_U64 total_size
Definition syms_base.h:310
SYMS_U64 node_count
Definition syms_base.h:309
SYMS_String8Node * last
Definition syms_base.h:308
Definition syms_base.h:301
SYMS_String8 string
Definition syms_base.h:303
struct SYMS_String8Node * next
Definition syms_base.h:302
Definition syms_base.h:296
SYMS_U8 * str
Definition syms_base.h:297
SYMS_U64 size
Definition syms_base.h:298
Definition syms_base.h:325
SYMS_String8 sep
Definition syms_base.h:327
SYMS_String8 pre
Definition syms_base.h:326
SYMS_String8 post
Definition syms_base.h:328
Definition syms_base.h:243
SYMS_U16 * u16
Definition syms_base.h:244
SYMS_U64 count
Definition syms_base.h:245
Definition syms_base.h:238
SYMS_U64 count
Definition syms_base.h:240
SYMS_U32 * u32
Definition syms_base.h:239
Definition syms_base.h:259
SYMS_U32 max
Definition syms_base.h:261
SYMS_U32 min
Definition syms_base.h:260
Definition syms_base.h:248
struct SYMS_U64ArrayNode * next
Definition syms_base.h:249
SYMS_U64 count
Definition syms_base.h:251
SYMS_U64 * u64
Definition syms_base.h:250
Definition syms_base.h:233
SYMS_U64 * u64
Definition syms_base.h:234
SYMS_U64 count
Definition syms_base.h:235
Definition syms_base.h:290
SYMS_U64 count
Definition syms_base.h:293
SYMS_U64Node * last
Definition syms_base.h:292
SYMS_U64Node * first
Definition syms_base.h:291
Definition syms_base.h:254
SYMS_U64 u64
Definition syms_base.h:256
SYMS_B32 valid
Definition syms_base.h:255
Definition syms_base.h:285
SYMS_U64 u64
Definition syms_base.h:287
struct SYMS_U64Node * next
Definition syms_base.h:286
Definition syms_base.h:280
SYMS_U64Range * ranges
Definition syms_base.h:281
SYMS_U64 count
Definition syms_base.h:282
Definition syms_base.h:274
SYMS_U64 node_count
Definition syms_base.h:277
SYMS_U64RangeNode * first
Definition syms_base.h:275
SYMS_U64RangeNode * last
Definition syms_base.h:276
Definition syms_base.h:269
struct SYMS_U64RangeNode * next
Definition syms_base.h:270
SYMS_U64Range range
Definition syms_base.h:271
Definition syms_base.h:264
SYMS_U64 max
Definition syms_base.h:266
SYMS_U64 min
Definition syms_base.h:265
Definition syms_base.h:420
SYMS_U64 stack_pointer
Definition syms_base.h:424
SYMS_U64 missed_read_addr
Definition syms_base.h:423
SYMS_B32 missed_read
Definition syms_base.h:422
SYMS_B32 dead
Definition syms_base.h:421
SYMS_API SYMS_U64 syms_hash_u64(SYMS_U64 x)
Definition syms_base.c:57
float SYMS_F32
Definition syms_base.h:101
SYMS_API SYMS_U64 syms_u64_range_size(SYMS_U64Range range)
Definition syms_base.c:31
SYMS_API SYMS_SerialValue * syms_serial_value_from_enum_value(SYMS_SerialType *type, SYMS_U64 value)
Definition syms_base.c:97
SYMS_GLOBAL SYMS_U64 syms_hash_djb2_initial
Definition syms_base.h:451
SYMS_API SYMS_SortNode * syms_sort_node_push(SYMS_Arena *arena, SYMS_SortNode **stack, SYMS_SortNode **free_stack, SYMS_U64 first, SYMS_U64 opl)
Definition syms_base.c:710
SYMS_API SYMS_SerialFlag * syms_serial_first_flag(SYMS_SerialType *type)
Definition syms_base.c:88
double SYMS_F64
Definition syms_base.h:102
SYMS_C_LINKAGE_BEGIN SYMS_API SYMS_String8 syms_version_string(void)
Definition syms_base.c:10
SYMS_API SYMS_U64Array syms_u64_array_from_list(SYMS_Arena *arena, SYMS_U64List *list)
Definition syms_base.c:633
SYMS_API SYMS_U32 syms_lowercase_from_codepoint(SYMS_U32 codepoint)
Definition syms_base.c:160
SYMS_API SYMS_U64 syms_1based_checked_lookup_u64(SYMS_U64 *u64, SYMS_U64 count, SYMS_U64 n)
Definition syms_base.c:651
SYMS_API SYMS_U64 syms_based_range_read(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 out_size, void *out)
Definition syms_base.c:753
SYMS_API SYMS_String8 syms_str8_range(SYMS_U8 *first, SYMS_U8 *opl)
Definition syms_base.c:184
SYMS_U32 SYMS_StringMatchFlags
Definition syms_base.h:318
SYMS_API void syms_string_list_push_node_front(SYMS_String8Node *node, SYMS_String8List *list, SYMS_String8 string)
Definition syms_base.c:272
SYMS_API SYMS_S64 syms_s64_from_string_c_rules(SYMS_String8 str)
Definition syms_base.c:478
SYMS_API void syms_u64_range_list_concat(SYMS_U64RangeList *list, SYMS_U64RangeList *to_push)
Definition syms_base.c:570
SYMS_API SYMS_B32 syms_memory_view_read(SYMS_MemoryView *memview, SYMS_U64 addr, SYMS_U64 size, void *ptr)
Definition syms_base.c:849
SYMS_API void syms_unwind_result_missed_read(SYMS_UnwindResult *unwind_result, SYMS_U64 addr)
Definition syms_base.c:861
SYMS_API SYMS_SerialValue * syms_serial_first_value(SYMS_SerialType *type)
Definition syms_base.c:79
SYMS_API SYMS_U64 syms_hash_djb2_continue(SYMS_String8 string, SYMS_U64 intermediate_hash)
Definition syms_base.c:46
SYMS_S64 SYMS_B64
Definition syms_base.h:100
SYMS_API SYMS_String8 syms_str8_cstring(char *str)
Definition syms_base.c:175
SYMS_API SYMS_String8List syms_string_list_concat(SYMS_String8List *left, SYMS_String8List *right)
Definition syms_base.c:294
SYMS_API SYMS_B32 syms_string_match(SYMS_String8 a, SYMS_String8 b, SYMS_StringMatchFlags flags)
Definition syms_base.c:210
SYMS_API void * syms_based_range_ptr(void *base, SYMS_U64Range range, SYMS_U64 offset)
Definition syms_base.c:744
SYMS_API SYMS_U64 syms_get_lane(void)
Definition syms_base.c:736
SYMS_API void syms_arena_push_align(SYMS_Arena *arena, SYMS_U64 boundary)
Definition syms_base.c:664
@ SYMS_StringMatchFlag_SlashInsensitive
Definition syms_base.h:322
@ SYMS_StringMatchFlag_RightSideSloppy
Definition syms_base.h:321
@ SYMS_StringMatchFlag_CaseInsensitive
Definition syms_base.h:320
SYMS_API SYMS_String8 syms_string_trunc_symbol_heuristic(SYMS_String8 string)
Definition syms_base.c:361
SYMS_API void syms_u64_range_list_push(SYMS_Arena *arena, SYMS_U64RangeList *list, SYMS_U64Range range)
Definition syms_base.c:564
SYMS_SerialWidthKind
Definition syms_base.h:348
@ SYMS_SerialWidthKind_RestOfStream
Definition syms_base.h:354
@ SYMS_SerialWidthKind_SequenceNullTerminated
Definition syms_base.h:353
@ SYMS_SerialWidthKind_PdbNumeric
Definition syms_base.h:355
@ SYMS_SerialWidthKind_Fixed
Definition syms_base.h:350
@ SYMS_SerialWidthKind_COUNT
Definition syms_base.h:356
@ SYMS_SerialWidthKind_Array
Definition syms_base.h:351
@ SYMS_SerialWidthKind_Null
Definition syms_base.h:349
@ SYMS_SerialWidthKind_NullTerminated
Definition syms_base.h:352
SYMS_API void syms_arena_put_back(SYMS_Arena *arena, SYMS_U64 amount)
Definition syms_base.c:672
SYMS_API SYMS_U64Range syms_make_u64_range(SYMS_U64 min, SYMS_U64 max)
Definition syms_base.c:18
SYMS_API SYMS_B32 syms_codepoint_is_whitespace(SYMS_U32 codepoint)
Definition syms_base.c:154
SYMS_API SYMS_U64RangeArray syms_u64_range_array_from_list(SYMS_Arena *arena, SYMS_U64RangeList *list)
Definition syms_base.c:585
SYMS_API void syms_u64_range_list_push_node(SYMS_U64RangeNode *node, SYMS_U64RangeList *list, SYMS_U64Range range)
Definition syms_base.c:557
SYMS_API void syms_string_list_push_node(SYMS_String8Node *node, SYMS_String8List *list, SYMS_String8 string)
Definition syms_base.c:264
SYMS_API void syms_u64_list_push(SYMS_Arena *arena, SYMS_U64List *list, SYMS_U64 v)
Definition syms_base.c:614
SYMS_API SYMS_SerialField * syms_serial_first_field(SYMS_SerialType *type)
Definition syms_base.c:70
SYMS_API SYMS_ArenaTemp syms_get_scratch(SYMS_Arena **conflicts, SYMS_U64 count)
Definition syms_base.c:694
SYMS_API SYMS_U16 syms_bswap_u16(SYMS_U16 x)
Definition syms_base.c:871
#define SYMS_API
Definition syms_base.h:29
SYMS_API SYMS_U64 syms_based_range_read_sleb128(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_S64 *out_value)
Definition syms_base.c:792
#define SYMS_C_LINKAGE_BEGIN
Definition syms_base.h:37
SYMS_API SYMS_String8 syms_based_range_read_string(void *base, SYMS_U64Range range, SYMS_U64 offset)
Definition syms_base.c:823
SYMS_API SYMS_U64 syms_enum_index_from_value_identity(SYMS_U64 v)
Definition syms_base.c:148
SYMS_API SYMS_U64 syms_bswap_u64(SYMS_U64 x)
Definition syms_base.c:889
SYMS_API void syms_set_lane(SYMS_U64 lane)
Definition syms_base.c:731
SYMS_API void syms_u64_list_push_node(SYMS_U64Node *node, SYMS_U64List *list, SYMS_U64 v)
Definition syms_base.c:607
SYMS_API SYMS_U64 syms_hash_djb2(SYMS_String8 string)
Definition syms_base.c:40
SYMS_API void syms_arena_temp_end(SYMS_ArenaTemp frame)
Definition syms_base.c:689
SYMS_API SYMS_SerialFlag * syms_serial_flag_from_bit_offset(SYMS_SerialType *type, SYMS_U64 bit_off)
Definition syms_base.c:111
SYMS_U32 SYMS_RegID
Definition syms_base.h:107
SYMS_SerialTypeKind
Definition syms_base.h:378
@ SYMS_SerialTypeKind_COUNT
Definition syms_base.h:387
@ SYMS_SerialTypeKind_Integer
Definition syms_base.h:380
@ SYMS_SerialTypeKind_Flags
Definition syms_base.h:385
@ SYMS_SerialTypeKind_Enum
Definition syms_base.h:384
@ SYMS_SerialTypeKind_UnsignedInteger
Definition syms_base.h:381
@ SYMS_SerialTypeKind_Null
Definition syms_base.h:379
@ SYMS_SerialTypeKind_Struct
Definition syms_base.h:386
@ SYMS_SerialTypeKind_Character
Definition syms_base.h:382
@ SYMS_SerialTypeKind_BinaryAnnotation
Definition syms_base.h:383
SYMS_API SYMS_String8 syms_string_list_join(SYMS_Arena *arena, SYMS_String8List *list, SYMS_StringJoin *join)
Definition syms_base.c:315
SYMS_API SYMS_U32 syms_bswap_u32(SYMS_U32 x)
Definition syms_base.c:879
SYMS_S32 SYMS_B32
Definition syms_base.h:99
SYMS_API SYMS_U64Range syms_make_u64_inrange(SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 size)
Definition syms_base.c:24
SYMS_API SYMS_String8 syms_str8(SYMS_U8 *str, SYMS_U64 size)
Definition syms_base.c:169
SYMS_API SYMS_U8 * syms_decode_utf8(SYMS_U8 *p, SYMS_U32 *dst)
Definition syms_base.c:246
SYMS_API void syms_string_list_push_front(SYMS_Arena *arena, SYMS_String8List *list, SYMS_String8 string)
Definition syms_base.c:288
SYMS_S16 SYMS_B16
Definition syms_base.h:98
SYMS_API SYMS_U64 syms_based_range_read_uleb128(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 *out_value)
Definition syms_base.c:765
SYMS_API SYMS_String8 syms_push_string_copy(SYMS_Arena *arena, SYMS_String8 string)
Definition syms_base.c:353
SYMS_S8 SYMS_B8
Definition syms_base.h:97
SYMS_API void syms_string_list_push(SYMS_Arena *arena, SYMS_String8List *list, SYMS_String8 string)
Definition syms_base.c:282
SYMS_API void syms_u64_list_concat_in_place(SYMS_U64List *dst, SYMS_U64List *src)
Definition syms_base.c:620
SYMS_API SYMS_MemoryView syms_memory_view_make(SYMS_String8 data, SYMS_U64 base)
Definition syms_base.c:840
#define SYMS_C_LINKAGE_END
Definition syms_base.h:38
SYMS_API SYMS_String8 syms_string_from_u64(SYMS_Arena *arena, SYMS_U64 x)
Definition syms_base.c:521
SYMS_API SYMS_String8List syms_string_split(SYMS_Arena *arena, SYMS_String8 input, SYMS_U32 delimiter)
Definition syms_base.c:390
SYMS_API SYMS_U64 syms_u64_from_string(SYMS_String8 str, SYMS_U32 radix)
Definition syms_base.c:422
#define SYMS_GLOBAL
Definition syms_base.h:42
SYMS_API SYMS_String8List syms_string_list_from_flags(SYMS_Arena *arena, SYMS_SerialType *type, SYMS_U32 flags)
Definition syms_base.c:130
SYMS_API SYMS_String8 syms_str8_skip_chop_whitespace(SYMS_String8 str)
Definition syms_base.c:190
SYMS_API void syms_bswap_bytes(void *p, SYMS_U64 size)
Definition syms_base.c:904
SYMS_API SYMS_ArenaTemp syms_arena_temp_begin(SYMS_Arena *arena)
Definition syms_base.c:682
int32_t SYMS_S32
Definition syms_crt_overrides.h:34
uint32_t SYMS_U32
Definition syms_crt_overrides.h:38
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
#define SYMS_U64
Definition syms_crt_overrides.h:54
uint16_t SYMS_U16
Definition syms_crt_overrides.h:37
int64_t SYMS_S64
Definition syms_crt_overrides.h:35
int16_t SYMS_S16
Definition syms_crt_overrides.h:33
uint8_t SYMS_U8
Definition syms_crt_overrides.h:36
int8_t SYMS_S8
Definition syms_crt_overrides.h:32
#define SYMS_Arena
Definition syms_default_arena.h:61