From d9ce0144614d5f49ad8b9c0575413993b86887de Mon Sep 17 00:00:00 2001 From: John Birrell Date: Sat, 26 Apr 2008 04:37:01 +0000 Subject: [PATCH] * Handle the different ioctl design. * Use FreeBSD's process library API. * Make the file compile cleanly. --- .../lib/libdtrace/common/dt_aggregate.c | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c index 2e66250b88d7..ac32f769a934 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c @@ -32,7 +32,11 @@ #include #include #include +#if defined(sun) #include +#else +#include +#endif #include #define DTRACE_AHASHSIZE 32779 /* big 'ol prime */ @@ -54,7 +58,7 @@ static int dt_keypos; static void dt_aggregate_count(int64_t *existing, int64_t *new, size_t size) { - int i; + uint_t i; for (i = 0; i < size / sizeof (int64_t); i++) existing[i] = existing[i] + new[i]; @@ -207,9 +211,10 @@ dt_aggregate_lquantizedcmp(int64_t *lhs, int64_t *rhs) static int dt_aggregate_quantizedcmp(int64_t *lhs, int64_t *rhs) { - int nbuckets = DTRACE_QUANTIZE_NBUCKETS, i; + int nbuckets = DTRACE_QUANTIZE_NBUCKETS; long double ltotal = 0, rtotal = 0; int64_t lzero, rzero; + uint_t i; for (i = 0; i < nbuckets; i++) { int64_t bucketval = DTRACE_QUANTIZE_BUCKETVAL(i); @@ -259,7 +264,11 @@ dt_aggregate_usym(dtrace_hdl_t *dtp, uint64_t *data) dt_proc_lock(dtp, P); +#if defined(sun) if (Plookup_by_addr(P, *pc, NULL, 0, &sym) == 0) +#else + if (proc_addr2sym(P, *pc, NULL, 0, &sym) == 0) +#endif *pc = sym.st_value; dt_proc_unlock(dtp, P); @@ -282,7 +291,11 @@ dt_aggregate_umod(dtrace_hdl_t *dtp, uint64_t *data) dt_proc_lock(dtp, P); +#if defined(sun) if ((map = Paddr_to_map(P, *pc)) != NULL) +#else + if ((map = proc_addr2map(P, *pc)) != NULL) +#endif *pc = map->pr_vaddr; dt_proc_unlock(dtp, P); @@ -367,7 +380,11 @@ dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu) buf->dtbd_cpu = cpu; +#if defined(sun) if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, buf) == -1) { +#else + if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, &buf) == -1) { +#endif if (errno == ENOENT) { /* * If that failed with ENOENT, it may be because the @@ -636,7 +653,7 @@ dtrace_aggregate_snap(dtrace_hdl_t *dtp) return (0); for (i = 0; i < agp->dtat_ncpus; i++) { - if (rval = dt_aggregate_snap_cpu(dtp, agp->dtat_cpus[i])) + if ((rval = dt_aggregate_snap_cpu(dtp, agp->dtat_cpus[i]))) return (rval); } @@ -1114,7 +1131,7 @@ dt_aggwalk_rval(dtrace_hdl_t *dtp, dt_ahashent_t *h, int rval) case DTRACE_AGGWALK_REMOVE: { dtrace_aggdata_t *aggdata = &h->dtahe_data; - int i, max_cpus = agp->dtat_maxcpu; + int max_cpus = agp->dtat_maxcpu; /* * First, remove this hash entry from its hash chain.