mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-21 03:05:00 -07:00
constant name map
This commit is contained in:
@@ -525,11 +525,12 @@ typedef enum RDI_NameMapKindEnum
|
||||
RDI_NameMapKind_NULL = 0,
|
||||
RDI_NameMapKind_GlobalVariables = 1,
|
||||
RDI_NameMapKind_ThreadVariables = 2,
|
||||
RDI_NameMapKind_Procedures = 3,
|
||||
RDI_NameMapKind_Types = 4,
|
||||
RDI_NameMapKind_LinkNameProcedures = 5,
|
||||
RDI_NameMapKind_NormalSourcePaths = 6,
|
||||
RDI_NameMapKind_COUNT = 7,
|
||||
RDI_NameMapKind_Constants = 3,
|
||||
RDI_NameMapKind_Procedures = 4,
|
||||
RDI_NameMapKind_Types = 5,
|
||||
RDI_NameMapKind_LinkNameProcedures = 6,
|
||||
RDI_NameMapKind_NormalSourcePaths = 7,
|
||||
RDI_NameMapKind_COUNT = 8,
|
||||
} RDI_NameMapKindEnum;
|
||||
|
||||
#define RDI_Header_XList \
|
||||
@@ -1097,6 +1098,7 @@ X(FromOther)\
|
||||
X(NULL)\
|
||||
X(GlobalVariables)\
|
||||
X(ThreadVariables)\
|
||||
X(Constants)\
|
||||
X(Procedures)\
|
||||
X(Types)\
|
||||
X(LinkNameProcedures)\
|
||||
@@ -1558,12 +1560,12 @@ typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets;
|
||||
typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes;
|
||||
|
||||
RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size);
|
||||
RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out);
|
||||
RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind);
|
||||
RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch);
|
||||
RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out);
|
||||
RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group);
|
||||
RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out);
|
||||
RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out);
|
||||
|
||||
extern RDI_U16 rdi_section_element_size_table[40];
|
||||
extern RDI_U8 rdi_section_is_required_table[40];
|
||||
|
||||
@@ -2350,6 +2350,19 @@ rdim_bake_name_map_from_kind_params(RDIM_Arena *arena, RDI_NameMapKind kind, RDI
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case RDI_NameMapKind_Constants:
|
||||
{
|
||||
map->slots_count = params->constants.total_count*2;
|
||||
map->slots = rdim_push_array(arena, RDIM_BakeNameMapNode *, map->slots_count);
|
||||
for(RDIM_SymbolChunkNode *n = params->constants.first; n != 0; n = n->next)
|
||||
{
|
||||
for(RDI_U64 idx = 0; idx < n->count; idx += 1)
|
||||
{
|
||||
RDI_U32 symbol_idx = (RDI_U32)rdim_idx_from_symbol(&n->v[idx]); // TODO(rjf): @u64_to_u32
|
||||
rdim_bake_name_map_push(arena, map, n->v[idx].name, symbol_idx);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case RDI_NameMapKind_Procedures:
|
||||
{
|
||||
map->slots_count = params->procedures.total_count*2;
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
internal String8
|
||||
rdi_string_from_name_map_kind(RDI_NameMapKind kind)
|
||||
{
|
||||
switch (kind) {
|
||||
case RDI_NameMapKind_NULL : return str8_lit("NULL");
|
||||
case RDI_NameMapKind_GlobalVariables : return str8_lit("GlobalVariables");
|
||||
case RDI_NameMapKind_ThreadVariables : return str8_lit("ThreadVariables");
|
||||
case RDI_NameMapKind_Procedures : return str8_lit("Procedures");
|
||||
case RDI_NameMapKind_Types : return str8_lit("Types");
|
||||
case RDI_NameMapKind_LinkNameProcedures: return str8_lit("LinkNameProcedures");
|
||||
case RDI_NameMapKind_NormalSourcePaths : return str8_lit("NormalSourcePaths");
|
||||
String8 result = {0};
|
||||
switch(kind)
|
||||
{
|
||||
default:{}break;
|
||||
#define X(name) case RDI_NameMapKind_##name:{result = str8_lit_comp(#name);}break;
|
||||
RDI_NameMapKind_XList
|
||||
#undef X
|
||||
}
|
||||
return str8_lit("");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1404,11 +1404,12 @@ RDI_NameMapKindTable:
|
||||
{NULL 0}
|
||||
{GlobalVariables 1}
|
||||
{ThreadVariables 2}
|
||||
{Procedures 3}
|
||||
{Types 4}
|
||||
{LinkNameProcedures 5}
|
||||
{NormalSourcePaths 6}
|
||||
{COUNT 7}
|
||||
{Constants 3}
|
||||
{Procedures 4}
|
||||
{Types 5}
|
||||
{LinkNameProcedures 6}
|
||||
{NormalSourcePaths 7}
|
||||
{COUNT 8}
|
||||
}
|
||||
|
||||
@table(name type desc)
|
||||
@@ -1483,12 +1484,12 @@ RDI_NameMapNodeMemberTable:
|
||||
@gen(functions)
|
||||
```
|
||||
RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size);
|
||||
RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out);
|
||||
RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind);
|
||||
RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch);
|
||||
RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out);
|
||||
RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group);
|
||||
RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out);
|
||||
RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out);
|
||||
```
|
||||
|
||||
@gen(functions) @c_file
|
||||
|
||||
Reference in New Issue
Block a user