mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-09-24 02:00:05 +00:00
eliminate os_core, move into base; eliminate regs, move into arch abstraction layer, define x64 regs in x64 layer; move win32 backend for os core (now base) functionality to top-level win32 layer
This commit is contained in:
@@ -17,26 +17,20 @@ d_init(void)
|
||||
Arena *arena = arena_alloc();
|
||||
d_ctrl_state = push_array(arena, D_CtrlState, 1);
|
||||
d_ctrl_state->arena = arena;
|
||||
for(Arch arch = (Arch)0; arch < Arch_COUNT; arch = (Arch)(arch+1))
|
||||
for EachEnumVal(Arch, arch)
|
||||
{
|
||||
String8 *reg_names = regs_reg_code_string_table_from_arch(arch);
|
||||
U64 reg_count = regs_reg_code_count_from_arch(arch);
|
||||
String8 *alias_names = regs_alias_code_string_table_from_arch(arch);
|
||||
U64 alias_count = regs_alias_code_count_from_arch(arch);
|
||||
ARCH_Info *arch_info = arch_info_from_arch(arch);
|
||||
U64 reg_count = arch_info->reg_code_count;
|
||||
String8 *reg_names = arch_info->reg_code_name_table;
|
||||
d_ctrl_state->arch_string2reg_tables[arch] = e_string2num_map_make(d_ctrl_state->arena, 256);
|
||||
d_ctrl_state->arch_string2alias_tables[arch] = e_string2num_map_make(d_ctrl_state->arena, 256);
|
||||
for(U64 idx = 1; idx < reg_count; idx += 1)
|
||||
{
|
||||
e_string2num_map_insert(d_ctrl_state->arena, &d_ctrl_state->arch_string2reg_tables[arch], reg_names[idx], idx);
|
||||
}
|
||||
for(U64 idx = 1; idx < alias_count; idx += 1)
|
||||
{
|
||||
e_string2num_map_insert(d_ctrl_state->arena, &d_ctrl_state->arch_string2alias_tables[arch], alias_names[idx], idx);
|
||||
}
|
||||
}
|
||||
d_ctrl_state->thread_reg_cache.slots_count = 1024;
|
||||
d_ctrl_state->thread_reg_cache.slots = push_array(arena, D_ThreadRegCacheSlot, d_ctrl_state->thread_reg_cache.slots_count);
|
||||
d_ctrl_state->thread_reg_cache.stripes_count = os_get_system_info()->logical_processor_count;
|
||||
d_ctrl_state->thread_reg_cache.stripes_count = get_system_info()->logical_processor_count;
|
||||
d_ctrl_state->thread_reg_cache.stripes = push_array(arena, D_ThreadRegCacheStripe, d_ctrl_state->thread_reg_cache.stripes_count);
|
||||
for(U64 idx = 0; idx < d_ctrl_state->thread_reg_cache.stripes_count; idx += 1)
|
||||
{
|
||||
@@ -45,7 +39,7 @@ d_init(void)
|
||||
}
|
||||
d_ctrl_state->module_image_info_cache.slots_count = 1024;
|
||||
d_ctrl_state->module_image_info_cache.slots = push_array(arena, D_ModuleImageInfoCacheSlot, d_ctrl_state->module_image_info_cache.slots_count);
|
||||
d_ctrl_state->module_image_info_cache.stripes_count = os_get_system_info()->logical_processor_count;
|
||||
d_ctrl_state->module_image_info_cache.stripes_count = get_system_info()->logical_processor_count;
|
||||
d_ctrl_state->module_image_info_cache.stripes = push_array(arena, D_ModuleImageInfoCacheStripe, d_ctrl_state->module_image_info_cache.stripes_count);
|
||||
for(U64 idx = 0; idx < d_ctrl_state->module_image_info_cache.stripes_count; idx += 1)
|
||||
{
|
||||
@@ -63,11 +57,11 @@ d_init(void)
|
||||
d_ctrl_state->c2u_ring_cv = cond_var_alloc();
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 user_program_data_path = os_get_process_info()->user_program_data_path;
|
||||
String8 user_program_data_path = get_process_info()->user_program_data_path;
|
||||
String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_data_path);
|
||||
os_make_directory(user_data_folder);
|
||||
make_directory(user_data_folder);
|
||||
d_ctrl_state->ctrl_thread_log_path = push_str8f(d_ctrl_state->arena, "%S/ctrl_thread.raddbg_log", user_data_folder);
|
||||
os_write_data_to_file_path(d_ctrl_state->ctrl_thread_log_path, str8_zero());
|
||||
write_data_to_file_path(d_ctrl_state->ctrl_thread_log_path, str8_zero());
|
||||
scratch_end(scratch);
|
||||
}
|
||||
d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex = rw_mutex_alloc();
|
||||
|
||||
Reference in New Issue
Block a user