diff options
author | jb <jb@FreeBSD.org> | 2008-04-26 04:01:35 +0000 |
---|---|---|
committer | jb <jb@FreeBSD.org> | 2008-04-26 04:01:35 +0000 |
commit | 17d482cf8c4ccc069ec0b163071ae7dc7d416184 (patch) | |
tree | 991b48bb736dc250125471b73aecbbb8c3354328 /cddl/contrib/opensolaris/tools/ctf/cvt/merge.c | |
parent | 134952ed1b96b079762297c69603a272fc0f4a00 (diff) | |
download | FreeBSD-src-17d482cf8c4ccc069ec0b163071ae7dc7d416184.zip FreeBSD-src-17d482cf8c4ccc069ec0b163071ae7dc7d416184.tar.gz |
A lot of changes to make this code compile cleanly on FreeBSD.
Diffstat (limited to 'cddl/contrib/opensolaris/tools/ctf/cvt/merge.c')
-rw-r--r-- | cddl/contrib/opensolaris/tools/ctf/cvt/merge.c | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c b/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c index 2af28b6..2ef37d4 100644 --- a/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c +++ b/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c @@ -132,7 +132,7 @@ typedef struct merge_cb_data merge_cb_data_t; * own traversal mechanism and ops vector here for those two cases. */ typedef struct tdesc_ops { - char *name; + const char *name; int (*equiv)(tdesc_t *, tdesc_t *, equiv_data_t *); tdesc_t *(*conjure)(tdesc_t *, int, merge_cb_data_t *); } tdesc_ops_t; @@ -179,21 +179,21 @@ struct merge_cb_data { static void add_mapping(alist_t *ta, tid_t srcid, tid_t tgtid) { - debug(3, "Adding mapping %u => %u\n", srcid, tgtid); + debug(3, "Adding mapping %u <%x> => %u <%x>\n", srcid, srcid, tgtid, tgtid); - assert(!alist_find(ta, (void *)srcid, NULL)); + assert(!alist_find(ta, (void *)(uintptr_t)srcid, NULL)); assert(srcid != 0 && tgtid != 0); - alist_add(ta, (void *)srcid, (void *)tgtid); + alist_add(ta, (void *)(uintptr_t)srcid, (void *)(uintptr_t)tgtid); } static tid_t get_mapping(alist_t *ta, int srcid) { - long ltgtid; + void *ltgtid; - if (alist_find(ta, (void *)srcid, (void **)<gtid)) - return ((int)ltgtid); + if (alist_find(ta, (void *)(uintptr_t)srcid, (void **)<gtid)) + return ((uintptr_t)ltgtid); else return (0); } @@ -216,7 +216,7 @@ static int equiv_node(tdesc_t *, tdesc_t *, equiv_data_t *); /*ARGSUSED2*/ static int -equiv_intrinsic(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) +equiv_intrinsic(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed __unused) { intr_t *si = stdp->t_intr; intr_t *ti = ttdp->t_intr; @@ -256,7 +256,7 @@ equiv_function(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) if (!equiv_node(fn1->fn_ret, fn2->fn_ret, ed)) return (0); - for (i = 0; i < fn1->fn_nargs; i++) { + for (i = 0; i < (int) fn1->fn_nargs; i++) { if (!equiv_node(fn1->fn_args[i], fn2->fn_args[i], ed)) return (0); } @@ -313,7 +313,7 @@ equiv_su(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) /*ARGSUSED2*/ static int -equiv_enum(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) +equiv_enum(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed __unused) { elist_t *el1 = stdp->t_emem; elist_t *el2 = ttdp->t_emem; @@ -335,7 +335,7 @@ equiv_enum(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) /*ARGSUSED*/ static int -equiv_assert(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) +equiv_assert(tdesc_t *stdp __unused, tdesc_t *ttdp __unused, equiv_data_t *ed __unused) { /* foul, evil, and very bad - this is a "shouldn't happen" */ assert(1 == 0); @@ -354,7 +354,7 @@ fwd_equiv(tdesc_t *ctdp, tdesc_t *mtdp) static int equiv_node(tdesc_t *ctdp, tdesc_t *mtdp, equiv_data_t *ed) { - int (*equiv)(); + int (*equiv)(tdesc_t *, tdesc_t *, equiv_data_t *); int mapping; if (ctdp->t_emark > ed->ed_clear_mark || @@ -418,7 +418,8 @@ equiv_cb(void *bucket, void *arg) ed->ed_cur_mark = ed->ed_clear_mark + 1; if (equiv_node(ctdp, mtdp, ed)) { - debug(3, "equiv_node matched %d %d\n", ctdp->t_id, mtdp->t_id); + debug(3, "equiv_node matched %d <%x> %d <%x>\n", + ctdp->t_id, ctdp->t_id, mtdp->t_id, mtdp->t_id); ed->ed_tgt = mtdp; /* matched. stop looking */ return (-1); @@ -429,7 +430,7 @@ equiv_cb(void *bucket, void *arg) /*ARGSUSED1*/ static int -map_td_tree_pre(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) +map_td_tree_pre(tdesc_t *ctdp, tdesc_t **ctdpp __unused, void *private) { merge_cb_data_t *mcd = private; @@ -441,7 +442,7 @@ map_td_tree_pre(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) /*ARGSUSED1*/ static int -map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) +map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp __unused, void *private) { merge_cb_data_t *mcd = private; equiv_data_t ed; @@ -452,7 +453,7 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) ed.ed_node = ctdp; ed.ed_selfuniquify = 0; - debug(3, "map_td_tree_post on %d %s\n", ctdp->t_id, tdesc_name(ctdp)); + debug(3, "map_td_tree_post on %d <%x> %s\n", ctdp->t_id, ctdp->t_id,tdesc_name(ctdp)); if (hash_find_iter(mcd->md_parent->td_layouthash, ctdp, equiv_cb, &ed) < 0) { @@ -460,7 +461,7 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) if (ed.ed_tgt->t_type == FORWARD && ctdp->t_type != FORWARD) { int id = mcd->md_tgt->td_nextid++; - debug(3, "Creating new defn type %d\n", id); + debug(3, "Creating new defn type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); alist_add(mcd->md_fdida, (void *)(ulong_t)ed.ed_tgt, (void *)(ulong_t)id); @@ -481,7 +482,7 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) } else { int id = mcd->md_tgt->td_nextid++; - debug(3, "Creating new type %d\n", id); + debug(3, "Creating new type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); hash_add(mcd->md_tdtba, ctdp); } @@ -493,7 +494,7 @@ map_td_tree_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) /*ARGSUSED1*/ static int -map_td_tree_self_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) +map_td_tree_self_post(tdesc_t *ctdp, tdesc_t **ctdpp __unused, void *private) { merge_cb_data_t *mcd = private; equiv_data_t ed; @@ -506,8 +507,8 @@ map_td_tree_self_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) ed.ed_tgt = NULL; if (hash_find_iter(mcd->md_tdtba, ctdp, equiv_cb, &ed) < 0) { - debug(3, "Self check found %d in %d\n", ctdp->t_id, - ed.ed_tgt->t_id); + debug(3, "Self check found %d <%x> in %d <%x>\n", ctdp->t_id, + ctdp->t_id, ed.ed_tgt->t_id, ed.ed_tgt->t_id); add_mapping(mcd->md_ta, ctdp->t_id, get_mapping(mcd->md_ta, ed.ed_tgt->t_id)); } else if (debug_level > 1 && hash_iter(mcd->md_tdtba, @@ -518,12 +519,13 @@ map_td_tree_self_post(tdesc_t *ctdp, tdesc_t **ctdpp, void *private) * through the entire hash. This usually means that the hash * function is broken. */ - aborterr("Self-unique second pass for %d (%s) == %d\n", - ctdp->t_id, tdesc_name(ctdp), ed.ed_tgt->t_id); + aborterr("Self-unique second pass for %d <%x> (%s) == %d <%x>\n", + ctdp->t_id, ctdp->t_id, tdesc_name(ctdp), ed.ed_tgt->t_id, + ed.ed_tgt->t_id); } else { int id = mcd->md_tgt->td_nextid++; - debug(3, "Creating new type %d\n", id); + debug(3, "Creating new type %d <%x>\n", id, id); add_mapping(mcd->md_ta, ctdp->t_id, id); hash_add(mcd->md_tdtba, ctdp); } @@ -696,14 +698,14 @@ remap_node(tdesc_t **tgtp, tdesc_t *oldtgt, int selftid, tdesc_t *newself, } if ((template.t_id = get_mapping(mcd->md_ta, oldid)) == 0) - aborterr("failed to get mapping for tid %d\n", oldid); + aborterr("failed to get mapping for tid %d <%x>\n", oldid, oldid); if (!hash_find(mcd->md_parent->td_idhash, (void *)&template, (void *)&tgt) && (!(mcd->md_flags & MCD_F_REFMERGE) || !hash_find(mcd->md_tgt->td_idhash, (void *)&template, (void *)&tgt))) { - debug(3, "Remap couldn't find %d (from %d)\n", template.t_id, - oldid); + debug(3, "Remap couldn't find %d <%x> (from %d <%x>)\n", template.t_id, + template.t_id, oldid, oldid); *tgtp = oldtgt; list_add(mcd->md_tdtbr, tgtp); return (0); @@ -729,7 +731,7 @@ conjure_template(tdesc_t *old, int newselfid) /*ARGSUSED2*/ static tdesc_t * -conjure_intrinsic(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) +conjure_intrinsic(tdesc_t *old, int newselfid, merge_cb_data_t *mcd __unused) { tdesc_t *new = conjure_template(old, newselfid); @@ -765,7 +767,7 @@ conjure_function(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) if (nfn->fn_nargs > 0) nfn->fn_args = xcalloc(sizeof (tdesc_t *) * ofn->fn_nargs); - for (i = 0; i < ofn->fn_nargs; i++) { + for (i = 0; i < (int) ofn->fn_nargs; i++) { (void) remap_node(&nfn->fn_args[i], ofn->fn_args[i], old->t_id, new, mcd); } @@ -805,7 +807,7 @@ conjure_su(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) *nmemp = xmalloc(sizeof (mlist_t)); (*nmemp)->ml_offset = omem->ml_offset; (*nmemp)->ml_size = omem->ml_size; - (*nmemp)->ml_name = xstrdup(omem->ml_name); + (*nmemp)->ml_name = xstrdup(omem->ml_name ? omem->ml_name : "empty omem->ml_name"); (void) remap_node(&((*nmemp)->ml_type), omem->ml_type, old->t_id, new, mcd); } @@ -816,7 +818,7 @@ conjure_su(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) /*ARGSUSED2*/ static tdesc_t * -conjure_enum(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) +conjure_enum(tdesc_t *old, int newselfid, merge_cb_data_t *mcd __unused) { tdesc_t *new = conjure_template(old, newselfid); elist_t *oel, **nelp; @@ -845,7 +847,7 @@ conjure_forward(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) /*ARGSUSED*/ static tdesc_t * -conjure_assert(tdesc_t *old, int newselfid, merge_cb_data_t *mcd) +conjure_assert(tdesc_t *old __unused, int newselfid __unused, merge_cb_data_t *mcd __unused) { assert(1 == 0); return (NULL); @@ -870,7 +872,7 @@ static int fwd_redir(tdesc_t *fwd, tdesc_t **fwdp, void *private) { alist_t *map = private; - tdesc_t *defn; + void *defn; if (!alist_find(map, (void *)fwd, (void **)&defn)) return (0); @@ -908,7 +910,7 @@ static int redir_mstr_fwd_cb(void *name, void *value, void *arg) { tdesc_t *fwd = name; - int defnid = (int)value; + int defnid = (uintptr_t)value; redir_mstr_data_t *rmd = arg; tdesc_t template; tdesc_t *defn; @@ -987,8 +989,9 @@ add_tdesc(tdesc_t *oldtdp, int newid, merge_cb_data_t *mcd) assert(hash_find(mcd->md_parent->td_idhash, (void *)&template, NULL) == 0); - debug(3, "trying to conjure %d %s (%d) as %d\n", - oldtdp->t_type, tdesc_name(oldtdp), oldtdp->t_id, newid); + debug(3, "trying to conjure %d %s (%d, <%x>) as %d, <%x>\n", + oldtdp->t_type, tdesc_name(oldtdp), oldtdp->t_id, + oldtdp->t_id, newid, newid); if ((newtdp = tdesc_ops[oldtdp->t_type].conjure(oldtdp, newid, mcd)) == NULL) @@ -1049,16 +1052,16 @@ merge_types(hash_t *src, merge_cb_data_t *mcd) (void) hash_iter(src, merge_type_cb, mcd); - tdrc = hash_iter(mcd->md_tdtba, add_tdtba_cb, (void *)mcd); + tdrc = hash_iter(mcd->md_tdtba, add_tdtba_cb, mcd); debug(3, "add_tdtba_cb added %d items\n", tdrc); - iirc = list_iter(*mcd->md_iitba, add_iitba_cb, (void *)mcd); + iirc = list_iter(*mcd->md_iitba, add_iitba_cb, mcd); debug(3, "add_iitba_cb added %d items\n", iirc); assert(list_count(*mcd->md_iitba) == 0 && hash_count(mcd->md_tdtba) == 0); - tdrc = list_iter(*mcd->md_tdtbr, add_tdtbr_cb, (void *)mcd); + tdrc = list_iter(*mcd->md_tdtbr, add_tdtbr_cb, mcd); debug(3, "add_tdtbr_cb added %d items\n", tdrc); if (list_count(*mcd->md_tdtbr) != 0) |