eliminate messages - too early for that change; eliminate many usage sites of d_ctrl_run; focus all ctrl thread driving code into one spot

This commit is contained in:
Ryan Fleury
2024-09-08 10:12:10 -07:00
parent 2cc81baffa
commit 6b172396f5
11 changed files with 103 additions and 3312 deletions
+18 -72
View File
@@ -7,36 +7,6 @@
////////////////////////////////
//~ rjf: Input State Types
typedef struct D_PathMap D_PathMap;
struct D_PathMap
{
String8 src;
String8 dst;
};
typedef struct D_PathMapArray D_PathMapArray;
struct D_PathMapArray
{
D_PathMap *v;
U64 count;
};
typedef struct D_Breakpoint D_Breakpoint;
struct D_Breakpoint
{
String8 file_path;
TxtPt pt;
U64 vaddr;
String8 condition;
};
typedef struct D_BreakpointArray D_BreakpointArray;
struct D_BreakpointArray
{
D_Breakpoint *v;
U64 count;
};
typedef struct D_Target D_Target;
struct D_Target
{
@@ -54,6 +24,23 @@ struct D_TargetArray
U64 count;
};
typedef struct D_Breakpoint D_Breakpoint;
struct D_Breakpoint
{
String8 file_path;
TxtPt pt;
String8 symbol_name;
U64 vaddr;
String8 condition;
};
typedef struct D_BreakpointArray D_BreakpointArray;
struct D_BreakpointArray
{
D_Breakpoint *v;
U64 count;
};
////////////////////////////////
//~ rjf: Handles
@@ -707,31 +694,6 @@ struct D_EvalVizWindowedRowList
U64 count_before_semantic;
};
////////////////////////////////
//~ rjf: Message Types
typedef struct D_Msg D_Msg;
struct D_Msg
{
D_MsgKind kind;
D_Regs *regs;
};
typedef struct D_MsgNode D_MsgNode;
struct D_MsgNode
{
D_MsgNode *next;
D_Msg v;
};
typedef struct D_MsgList D_MsgList;
struct D_MsgList
{
D_MsgNode *first;
D_MsgNode *last;
U64 count;
};
////////////////////////////////
//~ rjf: Command Specification Types
@@ -1032,10 +994,6 @@ struct D_State
D_RegsNode base_regs;
D_RegsNode *top_regs;
// rjf: messages
Arena *msgs_arena;
D_MsgList msgs;
// rjf: top-level command batch
Arena *root_cmd_arena;
D_CmdList root_cmds;
@@ -1608,23 +1566,11 @@ internal void d_errorf(char *fmt, ...);
__VA_ARGS__ \
})
////////////////////////////////
//~ rjf: Message Functions
internal D_MsgKind d_msg_kind_from_string(String8 string);
internal void d_msg_(D_MsgKind kind, D_Regs *regs);
#define d_msg(kind, ...) d_msg_((kind),\
&(D_Regs)\
{\
d_regs_lit_init_top \
__VA_ARGS__\
})
////////////////////////////////
//~ rjf: Main Layer Top-Level Calls
internal void d_init(CmdLine *cmdln, D_StateDeltaHistory *hist);
internal D_CmdList d_gather_root_cmds(Arena *arena);
internal void d_tick(Arena *arena, DI_Scope *di_scope, D_CmdList *cmds, F32 dt);
internal void d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, DI_Scope *di_scope, D_CmdList *cmds, F32 dt);
#endif // DBG_ENGINE_CORE_H