Module Name: src Committed By: christos Date: Fri Mar 18 17:07:23 UTC 2016
Modified Files: src/external/cddl/osnet/dist/tools/ctf/cvt: ctftools.h dwarf.c merge.c output.c tdata.c traverse.c Log Message: Add support for c++ classes. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c \ src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dist/tools/ctf/cvt/output.c \ src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.6 src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.7 --- src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.6 Fri Mar 18 10:55:34 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h Fri Mar 18 13:07:23 2016 @@ -142,6 +142,7 @@ typedef enum stabtype { FUNCTION, STRUCT, UNION, + CLASS, ENUM, FORWARD, TYPEDEF, Index: src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.21 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.22 --- src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.21 Fri Mar 18 12:32:03 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c Fri Mar 18 13:07:23 2016 @@ -186,6 +186,7 @@ tdesc_size(tdesc_t *tdp) case FUNCTION: case STRUCT: case UNION: + case CLASS: case ENUM: return (tdp->t_size); @@ -223,6 +224,7 @@ tdesc_bitsize(tdesc_t *tdp) case FUNCTION: case STRUCT: case UNION: + case CLASS: case ENUM: case POINTER: case REFERENCE: @@ -1162,6 +1164,12 @@ die_union_create(dwarf_t *dw, Dwarf_Die die_sou_create(dw, die, off, tdp, UNION, "union"); } +static void +die_class_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp) +{ + die_sou_create(dw, die, off, tdp, CLASS, "class"); +} + /*ARGSUSED1*/ static int die_sou_resolve(tdesc_t *tdp, tdesc_t **tdpp __unused, void *private) @@ -1196,7 +1204,8 @@ die_sou_resolve(tdesc_t *tdp, tdesc_t ** if (mt->t_type == ARRAY && mt->t_ardef->ad_nelems == 0) continue; if ((mt->t_flags & TDESC_F_RESOLVED) != 0 && - (mt->t_type == STRUCT || mt->t_type == UNION)) + (mt->t_type == STRUCT || mt->t_type == UNION || + mt->t_type == CLASS)) continue; if (mt->t_type == STRUCT && @@ -1819,6 +1828,7 @@ static const die_creator_t die_creators[ { DW_TAG_subroutine_type, 0, die_funcptr_create }, { DW_TAG_typedef, 0, die_typedef_create }, { DW_TAG_union_type, 0, die_union_create }, + { DW_TAG_class_type, 0, die_class_create }, { DW_TAG_base_type, 0, die_base_create }, { DW_TAG_const_type, 0, die_const_create }, { DW_TAG_subprogram, DW_F_NOTDP, die_function_create }, @@ -1895,6 +1905,7 @@ static tdtrav_cb_f die_resolvers[] = { NULL, /* function */ die_sou_resolve, /* struct */ die_sou_resolve, /* union */ + die_sou_resolve, /* class */ die_enum_resolve, /* enum */ die_fwd_resolve, /* forward */ NULL, /* typedef */ @@ -1913,6 +1924,7 @@ static tdtrav_cb_f die_fail_reporters[] NULL, /* function */ die_sou_failed, /* struct */ die_sou_failed, /* union */ + die_sou_failed, /* class */ NULL, /* enum */ NULL, /* forward */ NULL, /* typedef */ Index: src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.5 src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.6 --- src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.5 Fri Mar 18 10:55:34 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c Fri Mar 18 13:07:23 2016 @@ -548,6 +548,7 @@ static tdtrav_cb_f map_pre[] = { map_td_tree_pre, /* function */ map_td_tree_pre, /* struct */ map_td_tree_pre, /* union */ + map_td_tree_pre, /* class */ map_td_tree_pre, /* enum */ map_td_tree_pre, /* forward */ map_td_tree_pre, /* typedef */ @@ -566,6 +567,7 @@ static tdtrav_cb_f map_post[] = { map_td_tree_post, /* function */ map_td_tree_post, /* struct */ map_td_tree_post, /* union */ + map_td_tree_post, /* class */ map_td_tree_post, /* enum */ map_td_tree_post, /* forward */ map_td_tree_post, /* typedef */ @@ -584,6 +586,7 @@ static tdtrav_cb_f map_self_post[] = { map_td_tree_self_post, /* function */ map_td_tree_self_post, /* struct */ map_td_tree_self_post, /* union */ + map_td_tree_self_post, /* class */ map_td_tree_self_post, /* enum */ map_td_tree_self_post, /* forward */ map_td_tree_self_post, /* typedef */ @@ -901,6 +904,7 @@ static tdtrav_cb_f fwd_redir_cbs[] = { NULL, /* function */ NULL, /* struct */ NULL, /* union */ + NULL, /* class */ NULL, /* enum */ fwd_redir, /* forward */ NULL, /* typedef */ @@ -1143,6 +1147,7 @@ tdesc_ops_t tdesc_ops[] = { { "function", equiv_function, conjure_function }, { "struct", equiv_su, conjure_su }, { "union", equiv_su, conjure_su }, + { "class", equiv_su, conjure_su }, { "enum", equiv_enum, conjure_enum }, { "forward", NULL, conjure_forward }, { "typedef", equiv_plain, conjure_plain }, Index: src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.5 src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.6 --- src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.5 Fri Mar 18 10:55:34 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c Fri Mar 18 13:07:23 2016 @@ -124,6 +124,7 @@ static tdtrav_cb_f tdnops[] = { NULL, /* function */ NULL, /* struct */ NULL, /* union */ + NULL, /* class */ NULL, /* enum */ NULL, /* forward */ NULL, /* typedef */ @@ -142,6 +143,7 @@ static int (*tddescenders[])(tdesc_t *, tdtrav_func, /* function */ tdtrav_su, /* struct */ tdtrav_su, /* union */ + tdtrav_su, /* class */ NULL, /* enum */ NULL, /* forward */ tdtrav_plain, /* typedef */ Index: src/external/cddl/osnet/dist/tools/ctf/cvt/output.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.7 src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.8 --- src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.7 Fri Mar 18 11:26:31 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/output.c Fri Mar 18 13:07:23 2016 @@ -109,6 +109,7 @@ static tdtrav_cb_f burst_types_cbs[] = { save_type_by_id, /* function */ save_type_by_id, /* struct */ save_type_by_id, /* union */ + save_type_by_id, /* class */ save_type_by_id, /* enum */ save_type_by_id, /* forward */ save_type_by_id, /* typedef */ Index: src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.7 src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.8 --- src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.7 Fri Mar 18 12:37:09 2016 +++ src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c Fri Mar 18 13:07:23 2016 @@ -243,6 +243,7 @@ static void (*free_cbs[])(tdesc_t *) = { NULL, /* function */ free_mlist, /* struct */ free_mlist, /* union */ + free_mlist, /* class */ free_elist, /* enum */ NULL, /* forward */ NULL, /* typedef */ @@ -439,6 +440,7 @@ static tdtrav_cb_f build_hashes_cbs[] = build_hashes, /* function */ build_hashes, /* struct */ build_hashes, /* union */ + build_hashes, /* class */ build_hashes, /* enum */ build_hashes, /* forward */ build_hashes, /* typedef */