4#ifndef SYMS_DATA_STRUCTURES_H
5#define SYMS_DATA_STRUCTURES_H
12#define SYMS_STRING_CONS_BUCKET_COUNT 1024
106#define SYMS_FILE_ID_TO_NAME_MAP_BUCKET_COUNT 1024
178#define SYMS_ID_MAP_NODE_CAP 3
202#define SYMS_SYMBOL_NAME_MAP_BUCKET_COUNT 1024
OODEFFUNC typedef const char int line
Definition oodle2.h:678
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
float v
Definition radaudio_mdct.cpp:62
Definition syms_data_structures.h:94
SYMS_U64 x
Definition syms_data_structures.h:95
SYMS_U64 val
Definition syms_data_structures.h:96
SYMS_B32 open
Definition syms_data_structures.h:97
Definition syms_data_structures.h:26
SYMS_U64 id
Definition syms_data_structures.h:31
SYMS_U64 hash
Definition syms_data_structures.h:30
struct SYMS_DataIdxConsNode * all_next
Definition syms_data_structures.h:28
SYMS_String8 data
Definition syms_data_structures.h:29
struct SYMS_DataIdxConsNode * bucket_next
Definition syms_data_structures.h:27
Definition syms_data_structures.h:34
SYMS_U64 count
Definition syms_data_structures.h:39
SYMS_DataIdxConsNode ** buckets
Definition syms_data_structures.h:35
SYMS_DataIdxConsNode * last
Definition syms_data_structures.h:38
SYMS_DataIdxConsNode * first
Definition syms_data_structures.h:37
SYMS_U64 bucket_count
Definition syms_data_structures.h:36
SYMS_U64 total_size
Definition syms_data_structures.h:40
Definition syms_data_structures.h:117
SYMS_U64 count
Definition syms_data_structures.h:119
SYMS_FileID2NameNode * buckets[SYMS_FILE_ID_TO_NAME_MAP_BUCKET_COUNT]
Definition syms_data_structures.h:118
Definition syms_data_structures.h:108
struct SYMS_FileID2NameNode * next
Definition syms_data_structures.h:109
SYMS_FileID file_id
Definition syms_data_structures.h:112
SYMS_UnitID uid
Definition syms_data_structures.h:111
SYMS_String8 name
Definition syms_data_structures.h:114
Definition syms_debug_info.h:148
Definition syms_data_structures.h:265
SYMS_FileToLineToAddrLooseLine * first
Definition syms_data_structures.h:268
SYMS_U64 range_count
Definition syms_data_structures.h:271
struct SYMS_FileToLineToAddrLooseFile * next
Definition syms_data_structures.h:266
SYMS_U64 line_count
Definition syms_data_structures.h:270
SYMS_FileToLineToAddrLooseLine * last
Definition syms_data_structures.h:269
SYMS_FileID file_id
Definition syms_data_structures.h:267
Definition syms_data_structures.h:259
SYMS_U32 line
Definition syms_data_structures.h:261
SYMS_U64RangeList ranges
Definition syms_data_structures.h:262
struct SYMS_FileToLineToAddrLooseLine * next
Definition syms_data_structures.h:260
Definition syms_data_structures.h:274
SYMS_FileToLineToAddrLooseFile * first
Definition syms_data_structures.h:275
SYMS_U64 count
Definition syms_data_structures.h:277
SYMS_FileToLineToAddrLooseFile * last
Definition syms_data_structures.h:276
Definition syms_data_structures.h:253
SYMS_FileToLineToAddrNode ** buckets
Definition syms_data_structures.h:254
SYMS_U64 bucket_count
Definition syms_data_structures.h:255
Definition syms_data_structures.h:247
struct SYMS_FileToLineToAddrNode * next
Definition syms_data_structures.h:248
SYMS_FileID file_id
Definition syms_data_structures.h:249
SYMS_LineToAddrMap * map
Definition syms_data_structures.h:250
Definition syms_data_structures.h:180
struct SYMS_IDMapNode * next
Definition syms_data_structures.h:181
SYMS_U64 key[SYMS_ID_MAP_NODE_CAP]
Definition syms_data_structures.h:183
void * val[SYMS_ID_MAP_NODE_CAP]
Definition syms_data_structures.h:184
SYMS_U64 count
Definition syms_data_structures.h:182
Definition syms_data_structures.h:187
SYMS_IDMapNode ** buckets
Definition syms_data_structures.h:188
SYMS_U64 bucket_count
Definition syms_data_structures.h:189
SYMS_U64 node_count
Definition syms_data_structures.h:190
Definition syms_debug_info.h:164
Definition syms_debug_info.h:153
Definition syms_data_structures.h:237
SYMS_U64 line_count
Definition syms_data_structures.h:244
SYMS_U64Range * ranges
Definition syms_data_structures.h:238
SYMS_U32 * line_range_indexes
Definition syms_data_structures.h:242
SYMS_U32 * line_numbers
Definition syms_data_structures.h:243
Definition syms_debug_info.h:136
Definition syms_debug_info.h:390
Definition syms_data_structures.h:157
SYMS_Name2FileIDMapUnitNode * first
Definition syms_data_structures.h:160
struct SYMS_Name2FileIDMapFileNode * next
Definition syms_data_structures.h:158
SYMS_U64 count
Definition syms_data_structures.h:162
SYMS_String8 name
Definition syms_data_structures.h:159
SYMS_Name2FileIDMapUnitNode * last
Definition syms_data_structures.h:161
Definition syms_data_structures.h:139
SYMS_U64 unit_count
Definition syms_data_structures.h:142
SYMS_String8 name
Definition syms_data_structures.h:140
SYMS_Name2FileIDMapUnit * units
Definition syms_data_structures.h:141
Definition syms_data_structures.h:165
SYMS_U64 count
Definition syms_data_structures.h:168
SYMS_Name2FileIDMapFileNode * first
Definition syms_data_structures.h:166
SYMS_Name2FileIDMapFileNode * last
Definition syms_data_structures.h:167
Definition syms_data_structures.h:151
SYMS_FileID file_id
Definition syms_data_structures.h:154
struct SYMS_Name2FileIDMapUnitNode * next
Definition syms_data_structures.h:152
SYMS_UnitID uid
Definition syms_data_structures.h:153
Definition syms_data_structures.h:134
SYMS_UnitID uid
Definition syms_data_structures.h:135
SYMS_FileID file_id
Definition syms_data_structures.h:136
Definition syms_data_structures.h:145
SYMS_U64 file_count
Definition syms_data_structures.h:147
SYMS_Name2FileIDMapFile * files
Definition syms_data_structures.h:146
Definition syms_data_structures.h:78
SYMS_SpatialMap1DNode * last
Definition syms_data_structures.h:80
SYMS_SpatialMap1DNode * first
Definition syms_data_structures.h:79
SYMS_U64 total_count
Definition syms_data_structures.h:81
Definition syms_data_structures.h:71
SYMS_U64 val
Definition syms_data_structures.h:75
SYMS_U64Range range
Definition syms_data_structures.h:73
SYMS_U64RangeArray ranges
Definition syms_data_structures.h:74
struct SYMS_SpatialMap1DNode * next
Definition syms_data_structures.h:72
Definition syms_data_structures.h:59
SYMS_U64 val
Definition syms_data_structures.h:61
SYMS_U64Range range
Definition syms_data_structures.h:60
Definition syms_data_structures.h:65
SYMS_U64 count
Definition syms_data_structures.h:67
SYMS_SpatialMap1DRange * ranges
Definition syms_data_structures.h:66
Definition syms_data_structures.h:85
SYMS_U64 set_count
Definition syms_data_structures.h:91
SYMS_U8 * set_data
Definition syms_data_structures.h:90
SYMS_SpatialMap1D spatial_map
Definition syms_data_structures.h:86
SYMS_U64 * set_end_points
Definition syms_data_structures.h:88
Definition syms_base.h:313
Definition syms_base.h:296
Definition syms_data_structures.h:14
struct SYMS_StringConsNode * next
Definition syms_data_structures.h:15
SYMS_String8 string
Definition syms_data_structures.h:16
SYMS_U64 hash
Definition syms_data_structures.h:17
Definition syms_data_structures.h:20
SYMS_StringConsNode * buckets[SYMS_STRING_CONS_BUCKET_COUNT]
Definition syms_data_structures.h:21
Definition syms_debug_info.h:228
Definition syms_debug_info.h:222
Definition syms_data_structures.h:226
SYMS_SymbolNameNodeLoose * first
Definition syms_data_structures.h:228
SYMS_SymbolNameNodeLoose * last
Definition syms_data_structures.h:229
SYMS_U64 node_count
Definition syms_data_structures.h:230
SYMS_SymbolNameNodeLoose * buckets[SYMS_SYMBOL_NAME_MAP_BUCKET_COUNT]
Definition syms_data_structures.h:227
Definition syms_data_structures.h:211
SYMS_U64 node_count
Definition syms_data_structures.h:214
SYMS_SymbolNameNode * nodes
Definition syms_data_structures.h:213
SYMS_SymbolNameNode * buckets[SYMS_SYMBOL_NAME_MAP_BUCKET_COUNT]
Definition syms_data_structures.h:212
Definition syms_data_structures.h:218
SYMS_U64 hash
Definition syms_data_structures.h:222
struct SYMS_SymbolNameNodeLoose * next_bucket
Definition syms_data_structures.h:220
struct SYMS_SymbolNameNodeLoose * next
Definition syms_data_structures.h:219
SYMS_SymbolIDList sid_list
Definition syms_data_structures.h:223
SYMS_String8 name
Definition syms_data_structures.h:221
Definition syms_data_structures.h:204
SYMS_String8 name
Definition syms_data_structures.h:206
SYMS_U64 hash
Definition syms_data_structures.h:207
struct SYMS_SymbolNameNode * next_bucket
Definition syms_data_structures.h:205
SYMS_SymbolIDArray sid_array
Definition syms_data_structures.h:208
Definition syms_base.h:233
Definition syms_base.h:280
Definition syms_base.h:274
Definition syms_base.h:264
Definition syms_data_structures.h:46
SYMS_U64 * vals
Definition syms_data_structures.h:47
SYMS_U64 cap
Definition syms_data_structures.h:49
SYMS_U64 count
Definition syms_data_structures.h:48
#define SYMS_API
Definition syms_base.h:29
SYMS_S32 SYMS_B32
Definition syms_base.h:99
uint32_t SYMS_U32
Definition syms_crt_overrides.h:38
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
uint8_t SYMS_U8
Definition syms_crt_overrides.h:36
SYMS_API SYMS_IDMap syms_id_map_copy(SYMS_Arena *arena, SYMS_IDMap *map)
Definition syms_data_structures.c:897
SYMS_API SYMS_U64 syms_spatial_map_1d_binary_search(SYMS_SpatialMap1D *map, SYMS_U64 x)
Definition syms_data_structures.c:172
SYMS_API SYMS_FileToLineToAddrMap syms_line_to_addr_map_from_line_table(SYMS_Arena *arena, SYMS_LineTable *table)
Definition syms_data_structures.c:1251
SYMS_API SYMS_B32 syms_spatial_map_1d_invariants(SYMS_SpatialMap1D *map)
Definition syms_data_structures.c:656
SYMS_API void syms_symbol_name_map_push(SYMS_Arena *arena, SYMS_SymbolNameMapLoose *map, SYMS_String8 name, SYMS_SymbolID sid)
Definition syms_data_structures.c:1024
SYMS_API SYMS_String8 syms_file_id_2_name_map_name_from_id(SYMS_FileID2NameMap *map, SYMS_UnitID uid, SYMS_FileID file_id)
Definition syms_data_structures.c:684
SYMS_API void syms_line_to_addr_line_sort__rec(SYMS_FileToLineToAddrLooseLine **array, SYMS_U64 count)
Definition syms_data_structures.c:1464
#define SYMS_STRING_CONS_BUCKET_COUNT
Definition syms_data_structures.h:12
SYMS_API void syms_line_to_addr_line_sort(SYMS_FileToLineToAddrLooseLine **array, SYMS_U64 count)
Definition syms_data_structures.c:1457
SYMS_API void syms_spatial_map_1d_array_sort(SYMS_SpatialMap1DRange *ranges, SYMS_U64 count)
Definition syms_data_structures.c:334
SYMS_API SYMS_U64Set syms_u64_set_alloc(SYMS_Arena *arena, SYMS_U64 cap)
Definition syms_data_structures.c:89
SYMS_API SYMS_U64 syms_line_index_from_voff__binary_search(SYMS_Line *lines, SYMS_U64 ender_index, SYMS_U64 voff)
Definition syms_data_structures.c:1126
#define SYMS_FILE_ID_TO_NAME_MAP_BUCKET_COUNT
Definition syms_data_structures.h:106
SYMS_API SYMS_Line syms_line_from_sequence_voff(SYMS_LineTable *line_table, SYMS_U64 seq_index, SYMS_U64 voff)
Definition syms_data_structures.c:1156
SYMS_API SYMS_B32 syms_u64_set_insert(SYMS_U64Set *set, SYMS_U64 x)
Definition syms_data_structures.c:135
SYMS_API SYMS_SymbolNameMap syms_symbol_name_map_bake(SYMS_Arena *arena, SYMS_SymbolNameMapLoose *loose)
Definition syms_data_structures.c:1065
SYMS_API void syms_id_map_insert(SYMS_Arena *arena, SYMS_IDMap *map, SYMS_U64 key, void *val)
Definition syms_data_structures.c:974
SYMS_API SYMS_U64 syms_index_from_n__u32__binary_search_round_up(SYMS_U32 *v, SYMS_U64 count, SYMS_U32 n)
Definition syms_data_structures.c:1585
SYMS_API SYMS_LineTable syms_line_table_with_indexes_from_parse(SYMS_Arena *arena, SYMS_LineParseOut *parse)
Definition syms_data_structures.c:1240
SYMS_API SYMS_SymbolIDArray syms_symbol_name_map_array_from_string(SYMS_SymbolNameMap *map, SYMS_String8 string)
Definition syms_data_structures.c:1004
SYMS_API void syms_u64_set_erase(SYMS_U64Set *set, SYMS_U64 x)
Definition syms_data_structures.c:153
SYMS_API SYMS_B32 syms_spatial_map_1d_array_check_sorted(SYMS_SpatialMap1DRange *ranges, SYMS_U64 count)
Definition syms_data_structures.c:319
SYMS_API SYMS_U64RangeArray syms_line_to_addr_map_lookup_nearest_line_number(SYMS_LineToAddrMap *map, SYMS_U32 line, SYMS_U32 *actual_line_out)
Definition syms_data_structures.c:1437
SYMS_API SYMS_U64 syms_spatial_map_1d_index_from_point(SYMS_SpatialMap1D *map, SYMS_U64 x)
Definition syms_data_structures.c:211
SYMS_API SYMS_LineToAddrMap * syms_line_to_addr_map_lookup_file_id(SYMS_FileToLineToAddrMap *map, SYMS_FileID file_id)
Definition syms_data_structures.c:1420
SYMS_API SYMS_String8Array syms_string_array_copy(SYMS_Arena *arena, SYMS_StringCons *cons_optional, SYMS_String8Array *array)
Definition syms_data_structures.c:1531
SYMS_API SYMS_Name2FileIDMap syms_name_2_file_id_map_bake(SYMS_Arena *arena, SYMS_Name2FileIDMapLoose *loose)
Definition syms_data_structures.c:819
SYMS_API SYMS_FileID2NameMap syms_file_id_2_name_map_copy(SYMS_Arena *arena, SYMS_StringCons *cons_optional, SYMS_FileID2NameMap *map)
Definition syms_data_structures.c:706
SYMS_API void syms_spatial_map_1d_array_sort__rec(SYMS_SpatialMap1DRange *ranges, SYMS_U64 count)
Definition syms_data_structures.c:341
SYMS_API void syms_name_2_file_id_map_loose_push(SYMS_Arena *arena, SYMS_Name2FileIDMapLoose *map, SYMS_String8 name_cons, SYMS_UnitID uid, SYMS_FileID file_id)
Definition syms_data_structures.c:856
SYMS_API void syms_spatial_map_1d_loose_push(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose, SYMS_U64 val, SYMS_U64RangeArray ranges)
Definition syms_data_structures.c:251
SYMS_API SYMS_String8 syms_string_cons(SYMS_Arena *arena, SYMS_StringCons *cons, SYMS_String8 string)
Definition syms_data_structures.c:10
#define SYMS_ID_MAP_NODE_CAP
Definition syms_data_structures.h:178
SYMS_API SYMS_LinkNameRecArray syms_link_name_record_copy(SYMS_Arena *arena, SYMS_LinkNameRecArray *array)
Definition syms_data_structures.c:1564
SYMS_API SYMS_U64 syms_file_id_2_name_map_hash(SYMS_UnitID uid, SYMS_FileID file_id)
Definition syms_data_structures.c:677
SYMS_API SYMS_DataIdxCons syms_data_idx_cons_alloc(SYMS_Arena *arena, SYMS_U64 bucket_count)
Definition syms_data_structures.c:41
SYMS_API SYMS_U64Array syms_spatial_multi_map_1d_array_from_point(SYMS_SpatialMultiMap1D *map, SYMS_U64 x)
Definition syms_data_structures.c:567
SYMS_API void * syms_id_map_ptr_from_u64(SYMS_IDMap *map, SYMS_U64 key)
Definition syms_data_structures.c:939
SYMS_API void syms_spatial_map_1d_endpoint_sort(SYMS_1DEndPoint *endpoints, SYMS_U64 count)
Definition syms_data_structures.c:585
SYMS_API void syms_file_id_2_name_map_insert(SYMS_Arena *arena, SYMS_FileID2NameMap *map, SYMS_UnitID uid, SYMS_FileID file_id, SYMS_String8 name)
Definition syms_data_structures.c:754
SYMS_API SYMS_U64 syms_spatial_map_1d_value_from_point(SYMS_SpatialMap1D *map, SYMS_U64 x)
Definition syms_data_structures.c:226
#define SYMS_SYMBOL_NAME_MAP_BUCKET_COUNT
Definition syms_data_structures.h:202
SYMS_API void syms_spatial_map_1d_loose_push_single(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose, SYMS_U64 val, SYMS_U64Range range)
Definition syms_data_structures.c:262
SYMS_API SYMS_SpatialMap1D syms_spatial_map_1d_bake(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose)
Definition syms_data_structures.c:273
SYMS_API SYMS_SpatialMap1D syms_spatial_map_1d_copy(SYMS_Arena *arena, SYMS_SpatialMap1D *map)
Definition syms_data_structures.c:240
SYMS_API SYMS_U64 syms_data_idx_cons(SYMS_Arena *arena, SYMS_DataIdxCons *cons, SYMS_String8 data)
Definition syms_data_structures.c:49
SYMS_API SYMS_U64 syms_u64_set__bs(SYMS_U64Set *set, SYMS_U64 x)
Definition syms_data_structures.c:97
SYMS_API SYMS_SpatialMultiMap1D syms_spatial_multi_map_1d_bake(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose)
Definition syms_data_structures.c:412
SYMS_API void syms_line_table_rewrite_file_ids_in_place(SYMS_FileIDArray *file_ids, SYMS_LineTable *line_table_in_out)
Definition syms_data_structures.c:1198
SYMS_API SYMS_Name2FileIDMap syms_name_2_file_id_map_copy(SYMS_Arena *arena, SYMS_StringCons *cons_optional, SYMS_Name2FileIDMap *file_map)
Definition syms_data_structures.c:776
SYMS_API SYMS_LineTable syms_line_table_copy(SYMS_Arena *arena, SYMS_LineTable *line_table)
Definition syms_data_structures.c:1171
SYMS_API SYMS_IDMap syms_id_map_alloc(SYMS_Arena *arena, SYMS_U64 bucket_count)
Definition syms_data_structures.c:966
SYMS_U64 SYMS_UnitID
Definition syms_debug_info.h:77
SYMS_U64 SYMS_FileID
Definition syms_debug_info.h:128
SYMS_U64 SYMS_SymbolID
Definition syms_debug_info.h:215
#define SYMS_Arena
Definition syms_default_arena.h:61