mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-06 16:05:42 +00:00
WIP fix lib push order and sort new inputs
This commit is contained in:
committed by
Ryan Fleury
parent
67e66dc26e
commit
b64e1dca9a
+23
-15
@@ -16,7 +16,7 @@ typedef struct LNK_Lib
|
||||
String8 long_names;
|
||||
U64 input_idx;
|
||||
} LNK_Lib;
|
||||
|
||||
|
||||
typedef struct LNK_LibNode
|
||||
{
|
||||
LNK_Lib data;
|
||||
@@ -25,31 +25,39 @@ typedef struct LNK_LibNode
|
||||
|
||||
typedef struct LNK_LibNodeArray
|
||||
{
|
||||
U64 count;
|
||||
LNK_LibNode *v;
|
||||
U64 count;
|
||||
LNK_LibNode **v;
|
||||
} LNK_LibNodeArray;
|
||||
|
||||
typedef struct LNK_LibList
|
||||
{
|
||||
U64 count;
|
||||
struct LNK_LibNode *first;
|
||||
U64 count;
|
||||
LNK_LibNode *first;
|
||||
LNK_LibNode *last;
|
||||
} LNK_LibList;
|
||||
|
||||
// --- Workers Contexts --------------------------------------------------------
|
||||
|
||||
typedef struct
|
||||
{
|
||||
String8 *data_arr;
|
||||
String8 *path_arr;
|
||||
LNK_LibList free_libs;
|
||||
LNK_LibList valid_libs;
|
||||
LNK_LibList invalid_libs;
|
||||
String8 *data_arr;
|
||||
String8 *path_arr;
|
||||
U64 next_free_lib_idx;
|
||||
U64 valid_libs_count;
|
||||
U64 invalid_libs_count;
|
||||
LNK_LibNode *free_libs;
|
||||
LNK_LibNode **valid_libs;
|
||||
LNK_LibNode **invalid_libs;
|
||||
} LNK_LibIniter;
|
||||
|
||||
internal LNK_LibNode * lnk_lib_list_pop_node_atomic(LNK_LibList *list);
|
||||
internal void lnk_lib_list_push_node_atomic(LNK_LibList *list, LNK_LibNode *node);
|
||||
internal void lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node);
|
||||
internal LNK_LibList lnk_lib_list_reserve(Arena *arena, U64 count);
|
||||
internal LNK_LibNodeArray lnk_array_from_lib_list(Arena *arena, LNK_LibList list);
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
internal int lnk_lib_node_is_before(void *a, void *b);
|
||||
internal int lnk_lib_node_ptr_is_before(void *raw_a, void *raw_b);
|
||||
|
||||
internal B32 lnk_lib_from_data(Arena *arena, String8 data, String8 path, LNK_Lib *lib_out);
|
||||
internal void lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node);
|
||||
internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr);
|
||||
|
||||
internal B32 lnk_search_lib(LNK_Lib *lib, String8 symbol_name, U32 *member_idx_out);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user