mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
raddbgi_from_pdb: move itype dependency chain building to task threads
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -134,18 +134,23 @@ struct P2R_ITypeFwdMapFillIn
|
|||||||
CV_TypeId *itype_fwd_map;
|
CV_TypeId *itype_fwd_map;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct P2R_ITypeFwdMapFillTask P2R_ITypeFwdMapFillTask;
|
//- rjf: itype chain build
|
||||||
struct P2R_ITypeFwdMapFillTask
|
|
||||||
|
typedef struct P2R_TypeIdChain P2R_TypeIdChain;
|
||||||
|
struct P2R_TypeIdChain
|
||||||
{
|
{
|
||||||
P2R_ITypeFwdMapFillIn fill_in;
|
P2R_TypeIdChain *next;
|
||||||
|
CV_TypeId itype;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct P2R_ITypeFwdMapFillTaskBatch P2R_ITypeFwdMapFillTaskBatch;
|
typedef struct P2R_ITypeChainBuildIn P2R_ITypeChainBuildIn;
|
||||||
struct P2R_ITypeFwdMapFillTaskBatch
|
struct P2R_ITypeChainBuildIn
|
||||||
{
|
{
|
||||||
P2R_ITypeFwdMapFillTask *tasks;
|
CV_LeafParsed *tpi_leaf;
|
||||||
U64 tasks_count;
|
CV_TypeId itype_first;
|
||||||
U64 *num_tasks_taken_ptr;
|
CV_TypeId itype_opl;
|
||||||
|
CV_TypeId *itype_fwd_map;
|
||||||
|
P2R_TypeIdChain **itype_chains;
|
||||||
};
|
};
|
||||||
|
|
||||||
//- rjf: symbol stream conversion
|
//- rjf: symbol stream conversion
|
||||||
@@ -174,25 +179,6 @@ struct P2R_SymbolStreamConvertOut
|
|||||||
RDIM_ScopeChunkList scopes;
|
RDIM_ScopeChunkList scopes;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct P2R_SymbolStreamTask P2R_SymbolStreamTask;
|
|
||||||
struct P2R_SymbolStreamTask
|
|
||||||
{
|
|
||||||
// rjf: inputs
|
|
||||||
P2R_SymbolStreamConvertIn convert_in;
|
|
||||||
|
|
||||||
// rjf: outputs
|
|
||||||
Arena *out_arena;
|
|
||||||
P2R_SymbolStreamConvertOut *convert_out;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct P2R_SymbolStreamTaskBatch P2R_SymbolStreamTaskBatch;
|
|
||||||
struct P2R_SymbolStreamTaskBatch
|
|
||||||
{
|
|
||||||
P2R_SymbolStreamTask *tasks;
|
|
||||||
U64 tasks_count;
|
|
||||||
U64 *num_tasks_taken_ptr;
|
|
||||||
};
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Basic Helpers
|
//~ rjf: Basic Helpers
|
||||||
|
|
||||||
@@ -235,18 +221,16 @@ internal void *p2r_symbol_stream_parse_task__entry_point(Arena *arena, void *p);
|
|||||||
internal void *p2r_comp_unit_parse_task__entry_point(Arena *arena, void *p);
|
internal void *p2r_comp_unit_parse_task__entry_point(Arena *arena, void *p);
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Type Forward Resolution Map Filling Tasks
|
//~ rjf: Type Parsing/Conversion Tasks
|
||||||
|
|
||||||
internal void *p2r_itype_fwd_map_fill_task__entry_point(Arena *arena, void *p);
|
internal void *p2r_itype_fwd_map_fill_task__entry_point(Arena *arena, void *p);
|
||||||
|
internal void *p2r_itype_chain_build_task__entry_point(Arena *arena, void *p);
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Symbol Stream Conversion Paths & Thread
|
//~ rjf: Symbol Stream Conversion Paths & Thread
|
||||||
|
|
||||||
internal void *p2r_symbol_stream_convert_task__entry_point(Arena *arena, void *p);
|
internal void *p2r_symbol_stream_convert_task__entry_point(Arena *arena, void *p);
|
||||||
|
|
||||||
internal P2R_SymbolStreamConvertOut *p2r_symbol_stream_convert(Arena *arena, P2R_SymbolStreamConvertIn *in);
|
|
||||||
internal void p2r_symbol_stream_convert_task_thread__entry_point(void *p);
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Top-Level Conversion Entry Point
|
//~ rjf: Top-Level Conversion Entry Point
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user