]> granicus.if.org Git - sysstat/commitdiff
sadf -p now displays the sensor device name for temperature,
authorSebastien Godard <sysstat@orange.fr>
Tue, 24 May 2011 09:26:35 +0000 (11:26 +0200)
committerSebastien Godard <sysstat@orange.fr>
Tue, 24 May 2011 09:26:35 +0000 (11:26 +0200)
voltage inputs and fans statistics.

The render() function was not properly used in rndr_stats.c, in particular
when the DEVICE name was to be displayed by sadf for fans, voltage inputs
and temperature statistics.
A new flag has been added (PT_USESTR) enabling the render() function to
display strings. As a consequence, sadf -d and sadf -p are now able
to display the sensor device name.
The output of sadf -d has also changed (this is no longer "device;FAN;..."
but "FAN;DEVICE;...". Same thing applies for TEMP and IN statistics).

CHANGES
activity.c
rndr_stats.c
rndr_stats.h

diff --git a/CHANGES b/CHANGES
index 5989344083c78c65d6e78fa95ac89ead770b49d1..21c439a0270a1aa0634c0fba9e144eb10cdd3b45 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
 Changes:
 
 xxxx/xx/xx: Version 10.0.1 - Sebastien Godard (sysstat <at> orange.fr)
+       * sadf -p now displays the sensor device name for temperature,
+         voltage inputs and fans statistics.
        * [Ivana Varekova]: Added option -h to iostat. This option makes
          the device utilization report easier to read with long device
          names.
index ed0666fc583567834bf05a45385141d322fd1450..d467a5413d67eed3acea3fb50f33aa21521fd4bd 100644 (file)
@@ -995,7 +995,7 @@ struct activity pwr_fan_act = {
 #ifdef SOURCE_SADF
        .f_render       = render_pwr_fan_stats,
        .f_xml_print    = xml_print_pwr_fan_stats,
-       .hdr_line       = "device;FAN;rpm;drpm",
+       .hdr_line       = "FAN;DEVICE;rpm;drpm",
        .name           = "A_PWR_FAN",
 #endif
        .nr             = -1,
@@ -1025,7 +1025,7 @@ struct activity pwr_temp_act = {
 #ifdef SOURCE_SADF
        .f_render       = render_pwr_temp_stats,
        .f_xml_print    = xml_print_pwr_temp_stats,
-       .hdr_line       = "device;TEMP;degC;%temp",
+       .hdr_line       = "TEMP;DEVICE;degC;%temp",
        .name           = "A_PWR_TEMP",
 #endif
        .nr             = -1,
@@ -1055,7 +1055,7 @@ struct activity pwr_in_act = {
 #ifdef SOURCE_SADF
        .f_render       = render_pwr_in_stats,
        .f_xml_print    = xml_print_pwr_in_stats,
-       .hdr_line       = "device;IN;inV;%in",
+       .hdr_line       = "IN;DEVICE;inV;%in",
        .name           = "A_PWR_IN",
 #endif
        .nr             = -1,
index 6b628e792284f0edfb41b7cd0ef946912be2b361..dd79ae917258e7c78eb521edf561d14ada99bca0 100644 (file)
@@ -93,6 +93,7 @@ static Cons *cons(tcons t, ...)
  *          mid - pptxt/dbtxt format args as a Cons.
  *          luval - %lu printable arg (PT_USEINT must be set)
  *          dval  - %.2f printable arg (used unless PT_USEINT is set)
+ *          sval - %s printable arg (PT_USESTR must be set)
  *
  * does:     print [pre<sep>]([dbtxt,arg,arg<sep>]|[pptxt,arg,arg<sep>]) \
  *                     (luval|dval)(<sep>|\n)
@@ -102,7 +103,7 @@ static Cons *cons(tcons t, ...)
  */
 static void render(int isdb, char *pre, int rflags, const char *pptxt,
                   const char *dbtxt, Cons *mid, unsigned long int luval,
-                  double dval)
+                  double dval, char *sval)
 {
        static int newline = 1;
        const char *txt[]  = {pptxt, dbtxt};
@@ -139,6 +140,9 @@ static void render(int isdb, char *pre, int rflags, const char *pptxt,
        if (rflags & PT_USEINT) {
                printf("%s%lu", seps[isdb], luval);
        }
+       else if (rflags & PT_USESTR) {
+               printf("%s%s", seps[isdb], sval);
+       }
        else {
                printf("%s%.2f", seps[isdb], dval);
        }
@@ -185,7 +189,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               "-1",            /* look! dbtext */
                                               NULL,            /* no args */
                                               NOVAL,           /* another 0, named for readability */
-                                              ll_sp_value(scp->cpu_user, scc->cpu_user, g_itv));
+                                              ll_sp_value(scp->cpu_user, scc->cpu_user, g_itv),
+                                              NULL);           /* No string arg */
                                }
                                else if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -195,13 +200,15 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               0.0 :
                                               ll_sp_value(scp->cpu_user - scp->cpu_guest,
                                                           scc->cpu_user - scc->cpu_guest,
-                                                          g_itv));
+                                                          g_itv),
+                                              NULL);
                                }
                                
                                render(isdb, pre, PT_NOFLAG,
                                       "all\t%%nice", NULL, NULL,
                                       NOVAL,
-                                      ll_sp_value(scp->cpu_nice, scc->cpu_nice, g_itv));
+                                      ll_sp_value(scp->cpu_nice, scc->cpu_nice, g_itv),
+                                      NULL);
 
                                if (DISPLAY_CPU_DEF(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -209,40 +216,47 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               NOVAL,
                                               ll_sp_value(scp->cpu_sys + scp->cpu_hardirq + scp->cpu_softirq,
                                                           scc->cpu_sys + scc->cpu_hardirq + scc->cpu_softirq,
-                                                          g_itv));
+                                                          g_itv),
+                                              NULL);
                                }
                                else if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
                                               "all\t%%sys", NULL, NULL,
                                               NOVAL,
-                                              ll_sp_value(scp->cpu_sys, scc->cpu_sys, g_itv));
+                                              ll_sp_value(scp->cpu_sys, scc->cpu_sys, g_itv),
+                                              NULL);
                                }
                                
                                render(isdb, pre, PT_NOFLAG,
                                       "all\t%%iowait", NULL, NULL,
                                       NOVAL,
-                                      ll_sp_value(scp->cpu_iowait, scc->cpu_iowait, g_itv));
+                                      ll_sp_value(scp->cpu_iowait, scc->cpu_iowait, g_itv),
+                                      NULL);
 
                                render(isdb, pre, PT_NOFLAG,
                                       "all\t%%steal", NULL, NULL,
                                       NOVAL,
-                                      ll_sp_value(scp->cpu_steal, scc->cpu_steal, g_itv));
+                                      ll_sp_value(scp->cpu_steal, scc->cpu_steal, g_itv),
+                                      NULL);
 
                                if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
                                               "all\t%%irq", NULL, NULL,
                                               NOVAL,
-                                              ll_sp_value(scp->cpu_hardirq, scc->cpu_hardirq, g_itv));
+                                              ll_sp_value(scp->cpu_hardirq, scc->cpu_hardirq, g_itv),
+                                              NULL);
 
                                        render(isdb, pre, PT_NOFLAG,
                                               "all\t%%soft", NULL, NULL,
                                               NOVAL,
-                                              ll_sp_value(scp->cpu_softirq, scc->cpu_softirq, g_itv));
+                                              ll_sp_value(scp->cpu_softirq, scc->cpu_softirq, g_itv),
+                                              NULL);
 
                                        render(isdb, pre, PT_NOFLAG,
                                               "all\t%%guest", NULL, NULL,
                                               NOVAL,
-                                              ll_sp_value(scp->cpu_guest, scc->cpu_guest, g_itv));
+                                              ll_sp_value(scp->cpu_guest, scc->cpu_guest, g_itv),
+                                              NULL);
                                }
 
                                render(isdb, pre, pt_newlin,
@@ -250,7 +264,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                       NOVAL,
                                       (scc->cpu_idle < scp->cpu_idle) ?
                                       0.0 :
-                                      ll_sp_value(scp->cpu_idle, scc->cpu_idle, g_itv));
+                                      ll_sp_value(scp->cpu_idle, scc->cpu_idle, g_itv),
+                                      NULL);
                        }
                        else {
                                /*
@@ -288,7 +303,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               NOVAL,
                                               !g_itv ?
                                               0.0 :                    /* CPU is offline or tickless */
-                                              ll_sp_value(scp->cpu_user, scc->cpu_user, g_itv));
+                                              ll_sp_value(scp->cpu_user, scc->cpu_user, g_itv),
+                                              NULL);
                                }
                                else if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -298,7 +314,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               ((scc->cpu_user - scc->cpu_guest) < (scp->cpu_user - scp->cpu_guest))) ?
                                               0.0 :                    /* CPU is offline or tickless */
                                               ll_sp_value(scp->cpu_user - scp->cpu_guest,
-                                                          scc->cpu_user - scc->cpu_guest, g_itv));
+                                                          scc->cpu_user - scc->cpu_guest, g_itv),
+                                              NULL);
                                }
                                
                                render(isdb, pre, PT_NOFLAG,
@@ -306,7 +323,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                       NOVAL,
                                       !g_itv ?
                                       0.0 :
-                                      ll_sp_value(scp->cpu_nice, scc->cpu_nice, g_itv));
+                                      ll_sp_value(scp->cpu_nice, scc->cpu_nice, g_itv),
+                                      NULL);
 
                                if (DISPLAY_CPU_DEF(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -316,7 +334,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               0.0 :
                                               ll_sp_value(scp->cpu_sys + scp->cpu_hardirq + scp->cpu_softirq,
                                                           scc->cpu_sys + scc->cpu_hardirq + scc->cpu_softirq,
-                                                          g_itv));
+                                                          g_itv),
+                                              NULL);
                                }
                                else if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -324,7 +343,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               NOVAL,
                                               !g_itv ?
                                               0.0 :
-                                              ll_sp_value(scp->cpu_sys, scc->cpu_sys, g_itv));
+                                              ll_sp_value(scp->cpu_sys, scc->cpu_sys, g_itv),
+                                              NULL);
                                }
                                
                                render(isdb, pre, PT_NOFLAG,
@@ -332,14 +352,16 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                       NOVAL,
                                       !g_itv ?
                                       0.0 :
-                                      ll_sp_value(scp->cpu_iowait, scc->cpu_iowait, g_itv));
+                                      ll_sp_value(scp->cpu_iowait, scc->cpu_iowait, g_itv),
+                                      NULL);
 
                                render(isdb, pre, PT_NOFLAG,
                                       "cpu%d\t%%steal", NULL, cons(iv, i - 1, NOVAL),
                                       NOVAL,
                                       !g_itv ?
                                       0.0 :
-                                      ll_sp_value(scp->cpu_steal, scc->cpu_steal, g_itv));
+                                      ll_sp_value(scp->cpu_steal, scc->cpu_steal, g_itv),
+                                      NULL);
 
                                if (DISPLAY_CPU_ALL(a->opt_flags)) {
                                        render(isdb, pre, PT_NOFLAG,
@@ -347,21 +369,24 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               NOVAL,
                                               !g_itv ?
                                               0.0 :
-                                              ll_sp_value(scp->cpu_hardirq, scc->cpu_hardirq, g_itv));
+                                              ll_sp_value(scp->cpu_hardirq, scc->cpu_hardirq, g_itv),
+                                              NULL);
 
                                        render(isdb, pre, PT_NOFLAG,
                                               "cpu%d\t%%soft", NULL, cons(iv, i - 1, NOVAL),
                                               NOVAL,
                                               !g_itv ?
                                               0.0 :
-                                              ll_sp_value(scp->cpu_softirq, scc->cpu_softirq, g_itv));
+                                              ll_sp_value(scp->cpu_softirq, scc->cpu_softirq, g_itv),
+                                              NULL);
                                        
                                        render(isdb, pre, PT_NOFLAG,
                                               "cpu%d\t%%guest", NULL, cons(iv, i - 1, NOVAL),
                                               NOVAL,
                                               !g_itv ?
                                               0.0 :
-                                              ll_sp_value(scp->cpu_guest, scc->cpu_guest, g_itv));
+                                              ll_sp_value(scp->cpu_guest, scc->cpu_guest, g_itv),
+                                              NULL);
                                }
                                
                                if (!g_itv) {
@@ -370,7 +395,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               "cpu%d\t%%idle", NULL, cons(iv, i - 1, NOVAL),
                                               NOVAL,
                                               cpu_offline ?
-                                              0.0 : 100.0);
+                                              0.0 : 100.0,
+                                              NULL);
                                }
                                else {
                                        render(isdb, pre, pt_newlin,
@@ -378,7 +404,8 @@ __print_funct_t render_cpu_stats(struct activity *a, int isdb, char *pre,
                                               NOVAL,
                                               (scc->cpu_idle < scp->cpu_idle) ?
                                               0.0 :
-                                              ll_sp_value(scp->cpu_idle, scc->cpu_idle, g_itv));
+                                              ll_sp_value(scp->cpu_idle, scc->cpu_idle, g_itv),
+                                              NULL);
                                }
                        }
                }
@@ -415,12 +442,14 @@ __print_funct_t render_pcsw_stats(struct activity *a, int isdb, char *pre,
               NULL,            /* db/ppc text format args (Cons *) */
               NOVAL,           /* %lu value (unused unless PT_USEINT) */
               /* and %.2f value, used unless PT_USEINT */
-              S_VALUE(spp->processes, spc->processes, itv));
+              S_VALUE(spp->processes, spc->processes, itv),
+              NULL);           /* %s value */
 
        render(isdb, pre, pt_newlin,
               "-\tcswch/s", NULL, NULL,
               NOVAL,
-              ll_s_value(spp->context_switch, spc->context_switch, itv));
+              ll_s_value(spp->context_switch, spc->context_switch, itv),
+              NULL);
 }
 
 /*
@@ -457,13 +486,15 @@ __print_funct_t render_irq_stats(struct activity *a, int isdb, char *pre,
                                render(isdb, pre, pt_newlin,
                                       "sum\tintr/s", "-1", NULL,
                                       NOVAL,
-                                      ll_s_value(sip->irq_nr, sic->irq_nr, itv));
+                                      ll_s_value(sip->irq_nr, sic->irq_nr, itv),
+                                      NULL);
                        }
                        else {
                                render(isdb, pre, pt_newlin,
                                       "i%03d\tintr/s", "%d", cons(iv, i - 1, NOVAL),
                                       NOVAL,
-                                      ll_s_value(sip->irq_nr, sic->irq_nr, itv));
+                                      ll_s_value(sip->irq_nr, sic->irq_nr, itv),
+                                      NULL);
                        }
                }
        }
@@ -493,11 +524,13 @@ __print_funct_t render_swap_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tpswpin/s", NULL, NULL,
               NOVAL,
-              S_VALUE(ssp->pswpin, ssc->pswpin, itv));
+              S_VALUE(ssp->pswpin, ssc->pswpin, itv),
+              NULL);
        render(isdb, pre, pt_newlin,
               "-\tpswpout/s", NULL, NULL,
               NOVAL,
-              S_VALUE(ssp->pswpout, ssc->pswpout, itv));
+              S_VALUE(ssp->pswpout, ssc->pswpout, itv),
+              NULL);
 }
 
 /*
@@ -524,42 +557,50 @@ __print_funct_t render_paging_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tpgpgin/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgpgin, spc->pgpgin, itv));
+              S_VALUE(spp->pgpgin, spc->pgpgin, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpgpgout/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgpgout, spc->pgpgout, itv));
+              S_VALUE(spp->pgpgout, spc->pgpgout, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tfault/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgfault, spc->pgfault, itv));
+              S_VALUE(spp->pgfault, spc->pgfault, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tmajflt/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgmajfault, spc->pgmajfault, itv));
+              S_VALUE(spp->pgmajfault, spc->pgmajfault, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpgfree/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgfree, spc->pgfree, itv));
+              S_VALUE(spp->pgfree, spc->pgfree, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpgscank/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgscan_kswapd, spc->pgscan_kswapd, itv));
+              S_VALUE(spp->pgscan_kswapd, spc->pgscan_kswapd, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpgscand/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv));
+              S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpgsteal/s", NULL, NULL,
               NOVAL,
-              S_VALUE(spp->pgsteal, spc->pgsteal, itv));
+              S_VALUE(spp->pgsteal, spc->pgsteal, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\t%%vmeff", NULL, NULL,
@@ -568,7 +609,8 @@ __print_funct_t render_paging_stats(struct activity *a, int isdb, char *pre,
                spp->pgscan_kswapd - spp->pgscan_direct) ?
               SP_VALUE(spp->pgsteal, spc->pgsteal,
                        spc->pgscan_kswapd + spc->pgscan_direct -
-                       spp->pgscan_kswapd - spp->pgscan_direct) : 0.0);
+                       spp->pgscan_kswapd - spp->pgscan_direct) : 0.0,
+              NULL);
 }
 
 /*
@@ -595,27 +637,32 @@ __print_funct_t render_io_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\ttps", NULL, NULL,
               NOVAL,
-              S_VALUE(sip->dk_drive, sic->dk_drive, itv));
+              S_VALUE(sip->dk_drive, sic->dk_drive, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\trtps", NULL, NULL,
               NOVAL,
-              S_VALUE(sip->dk_drive_rio, sic->dk_drive_rio, itv));
+              S_VALUE(sip->dk_drive_rio, sic->dk_drive_rio, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\twtps", NULL, NULL,
               NOVAL,
-              S_VALUE(sip->dk_drive_wio, sic->dk_drive_wio, itv));
+              S_VALUE(sip->dk_drive_wio, sic->dk_drive_wio, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tbread/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sip->dk_drive_rblk, sic->dk_drive_rblk, itv));
+              S_VALUE(sip->dk_drive_rblk, sic->dk_drive_rblk, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tbwrtn/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sip->dk_drive_wblk, sic->dk_drive_wblk, itv));
+              S_VALUE(sip->dk_drive_wblk, sic->dk_drive_wblk, itv),
+              NULL);
 }
 
 /*
@@ -645,89 +692,92 @@ __print_funct_t render_memory_stats(struct activity *a, int isdb, char *pre,
                       "-\tfrmpg/s", NULL, NULL,
                       NOVAL,
                       S_VALUE((double) KB_TO_PG(smp->frmkb),
-                              (double) KB_TO_PG(smc->frmkb), itv));
+                              (double) KB_TO_PG(smc->frmkb), itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "-\tbufpg/s", NULL, NULL,
                       NOVAL,
                       S_VALUE((double) KB_TO_PG(smp->bufkb),
-                              (double) KB_TO_PG(smc->bufkb), itv));
+                              (double) KB_TO_PG(smc->bufkb), itv),
+                      NULL);
 
                render(isdb, pre, pt_newlin,
                       "-\tcampg/s", NULL, NULL,
                       NOVAL,
                       S_VALUE((double) KB_TO_PG(smp->camkb),
-                              (double) KB_TO_PG(smc->camkb), itv));
+                              (double) KB_TO_PG(smc->camkb), itv),
+                      NULL);
        }
 
        if (DISPLAY_MEM_AMT(a->opt_flags)) {
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbmemfree", NULL, NULL,
-                      smc->frmkb, DNOVAL);
+                      smc->frmkb, DNOVAL, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbmemused", NULL, NULL,
-                      smc->tlmkb - smc->frmkb, DNOVAL);
+                      smc->tlmkb - smc->frmkb, DNOVAL, NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "-\t%%memused", NULL, NULL, NOVAL,
                       smc->tlmkb ?
                       SP_VALUE(smc->frmkb, smc->tlmkb, smc->tlmkb) :
-                      0.0);
+                      0.0, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbbuffers", NULL, NULL,
-                      smc->bufkb, DNOVAL);
+                      smc->bufkb, DNOVAL, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbcached", NULL, NULL,
-                      smc->camkb, DNOVAL);
+                      smc->camkb, DNOVAL, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbcommit", NULL, NULL,
-                      smc->comkb, DNOVAL);
+                      smc->comkb, DNOVAL, NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "-\t%%commit", NULL, NULL, NOVAL,
                       (smc->tlmkb + smc->tlskb) ?
                       SP_VALUE(0, smc->comkb, smc->tlmkb + smc->tlskb) :
-                      0.0);
+                      0.0, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbactive", NULL, NULL,
-                      smc->activekb, DNOVAL);
+                      smc->activekb, DNOVAL, NULL);
 
                render(isdb, pre, PT_USEINT | pt_newlin,
                       "-\tkbinact", NULL, NULL,
-                      smc->inactkb, DNOVAL);
+                      smc->inactkb, DNOVAL, NULL);
        }
        
        if (DISPLAY_SWAP(a->opt_flags)) {
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbswpfree", NULL, NULL,
-                      smc->frskb, DNOVAL);
+                      smc->frskb, DNOVAL, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbswpused", NULL, NULL,
-                      smc->tlskb - smc->frskb, DNOVAL);
+                      smc->tlskb - smc->frskb, DNOVAL, NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "-\t%%swpused", NULL, NULL, NOVAL,
                       smc->tlskb ?
                       SP_VALUE(smc->frskb, smc->tlskb, smc->tlskb) :
-                      0.0);
+                      0.0, NULL);
 
                render(isdb, pre, PT_USEINT,
                       "-\tkbswpcad", NULL, NULL,
-                      smc->caskb, DNOVAL);
+                      smc->caskb, DNOVAL, NULL);
 
                render(isdb, pre, pt_newlin,
                       "-\t%%swpcad", NULL, NULL, NOVAL,
                       (smc->tlskb - smc->frskb) ?
                       SP_VALUE(0, smc->caskb, smc->tlskb - smc->frskb) :
-                      0.0);
+                      0.0, NULL);
        }
 }
 
@@ -753,19 +803,19 @@ __print_funct_t render_ktables_stats(struct activity *a, int isdb, char *pre,
        
        render(isdb, pre, PT_USEINT,
               "-\tdentunusd", NULL, NULL,
-              skc->dentry_stat, DNOVAL);
+              skc->dentry_stat, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tfile-nr", NULL, NULL,
-              skc->file_used, DNOVAL);
+              skc->file_used, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tinode-nr", NULL, NULL,
-              skc->inode_used, DNOVAL);
+              skc->inode_used, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT | pt_newlin,
               "-\tpty-nr", NULL, NULL,
-              skc->pty_nr, DNOVAL);
+              skc->pty_nr, DNOVAL, NULL);
 }
 
 /*
@@ -790,30 +840,33 @@ __print_funct_t render_queue_stats(struct activity *a, int isdb, char *pre,
        
        render(isdb, pre, PT_USEINT,
               "-\trunq-sz", NULL, NULL,
-              sqc->nr_running, DNOVAL);
+              sqc->nr_running, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tplist-sz", NULL, NULL,
-              sqc->nr_threads, DNOVAL);
+              sqc->nr_threads, DNOVAL, NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tldavg-1", NULL, NULL,
               NOVAL,
-              (double) sqc->load_avg_1 / 100);
+              (double) sqc->load_avg_1 / 100,
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tldavg-5", NULL, NULL,
               NOVAL,
-              (double) sqc->load_avg_5 / 100);
+              (double) sqc->load_avg_5 / 100,
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tldavg-15", NULL, NULL,
               NOVAL,
-              (double) sqc->load_avg_15 / 100);
+              (double) sqc->load_avg_15 / 100,
+              NULL);
        
        render(isdb, pre, PT_USEINT | pt_newlin,
               "-\tblocked", NULL, NULL,
-              sqc->procs_blocked, DNOVAL);
+              sqc->procs_blocked, DNOVAL, NULL);
 }
 
 /*
@@ -849,40 +902,45 @@ __print_funct_t render_serial_stats(struct activity *a, int isdb, char *pre,
                               "ttyS%d\trcvin/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->rx, ssc->rx, itv));
+                              S_VALUE(ssp->rx, ssc->rx, itv),
+                              NULL);
 
                        render(isdb, pre, PT_NOFLAG,
                               "ttyS%d\txmtin/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->tx, ssc->tx, itv));
+                              S_VALUE(ssp->tx, ssc->tx, itv),
+                              NULL);
 
                        render(isdb, pre, PT_NOFLAG,
                               "ttyS%d\tframerr/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->frame, ssc->frame, itv));
+                              S_VALUE(ssp->frame, ssc->frame, itv),
+                              NULL);
 
                        render(isdb, pre, PT_NOFLAG,
                               "ttyS%d\tprtyerr/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->parity, ssc->parity, itv));
+                              S_VALUE(ssp->parity, ssc->parity, itv),
+                              NULL);
 
                        render(isdb, pre, PT_NOFLAG,
                               "ttyS%d\tbrk/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->brk, ssc->brk, itv));
+                              S_VALUE(ssp->brk, ssc->brk, itv),
+                              NULL);
 
                        render(isdb, pre, pt_newlin,
                               "ttyS%d\tovrun/s", "%d",
                               cons(iv, ssc->line - 1, NOVAL),
                               NOVAL,
-                              S_VALUE(ssp->overrun, ssc->overrun, itv));
+                              S_VALUE(ssp->overrun, ssc->overrun, itv),
+                              NULL);
                }
        }
-
 }
 
 /*
@@ -935,49 +993,57 @@ __print_funct_t render_disk_stats(struct activity *a, int isdb, char *pre,
                       "%s\ttps", "%s",
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      S_VALUE(sdp->nr_ios, sdc->nr_ios, itv));
+                      S_VALUE(sdp->nr_ios, sdc->nr_ios, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trd_sec/s", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      ll_s_value(sdp->rd_sect, sdc->rd_sect, itv));
+                      ll_s_value(sdp->rd_sect, sdc->rd_sect, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\twr_sec/s", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      ll_s_value(sdp->wr_sect, sdc->wr_sect, itv));
+                      ll_s_value(sdp->wr_sect, sdc->wr_sect, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\tavgrq-sz", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      xds.arqsz);
+                      xds.arqsz,
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\tavgqu-sz", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      S_VALUE(sdp->rq_ticks, sdc->rq_ticks, itv) / 1000.0);
+                      S_VALUE(sdp->rq_ticks, sdc->rq_ticks, itv) / 1000.0,
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\tawait", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      xds.await);
+                      xds.await,
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\tsvctm", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      xds.svctm);
+                      xds.svctm,
+                      NULL);
 
                render(isdb, pre, pt_newlin,
                       "%s\t%%util", NULL,
                       cons(sv, dev_name, NULL),
                       NOVAL,
-                      xds.util / 10.0);
+                      xds.util / 10.0,
+                      NULL);
        }
 }
 
@@ -1015,43 +1081,50 @@ __print_funct_t render_net_dev_stats(struct activity *a, int isdb, char *pre,
                       "%s\trxpck/s", "%s",
                       cons(sv, sndc->interface, NULL), /* What if the format args are strings? */
                       NOVAL,
-                      S_VALUE(sndp->rx_packets, sndc->rx_packets, itv));
+                      S_VALUE(sndp->rx_packets, sndc->rx_packets, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxpck/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->tx_packets, sndc->tx_packets, itv));
+                      S_VALUE(sndp->tx_packets, sndc->tx_packets, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trxkB/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->rx_bytes, sndc->rx_bytes, itv) / 1024);
+                      S_VALUE(sndp->rx_bytes, sndc->rx_bytes, itv) / 1024,
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxkB/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->tx_bytes, sndc->tx_bytes, itv) / 1024);
+                      S_VALUE(sndp->tx_bytes, sndc->tx_bytes, itv) / 1024,
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trxcmp/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->rx_compressed, sndc->rx_compressed, itv));
+                      S_VALUE(sndp->rx_compressed, sndc->rx_compressed, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxcmp/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->tx_compressed, sndc->tx_compressed, itv));
+                      S_VALUE(sndp->tx_compressed, sndc->tx_compressed, itv),
+                      NULL);
 
                render(isdb, pre, pt_newlin,
                       "%s\trxmcst/s", NULL,
                       cons(sv, sndc->interface, NULL),
                       NOVAL,
-                      S_VALUE(sndp->multicast, sndc->multicast, itv));
+                      S_VALUE(sndp->multicast, sndc->multicast, itv),
+                      NULL);
        }
 }
 
@@ -1089,55 +1162,64 @@ __print_funct_t render_net_edev_stats(struct activity *a, int isdb, char *pre,
                       "%s\trxerr/s", "%s",
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->rx_errors, snedc->rx_errors, itv));
+                      S_VALUE(snedp->rx_errors, snedc->rx_errors, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxerr/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->tx_errors, snedc->tx_errors, itv));
+                      S_VALUE(snedp->tx_errors, snedc->tx_errors, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\tcoll/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->collisions, snedc->collisions, itv));
+                      S_VALUE(snedp->collisions, snedc->collisions, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trxdrop/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->rx_dropped, snedc->rx_dropped, itv));
+                      S_VALUE(snedp->rx_dropped, snedc->rx_dropped, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxdrop/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->tx_dropped, snedc->tx_dropped, itv));
+                      S_VALUE(snedp->tx_dropped, snedc->tx_dropped, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\ttxcarr/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->tx_carrier_errors, snedc->tx_carrier_errors, itv));
+                      S_VALUE(snedp->tx_carrier_errors, snedc->tx_carrier_errors, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trxfram/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->rx_frame_errors, snedc->rx_frame_errors, itv));
+                      S_VALUE(snedp->rx_frame_errors, snedc->rx_frame_errors, itv),
+                      NULL);
 
                render(isdb, pre, PT_NOFLAG,
                       "%s\trxfifo/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->rx_fifo_errors, snedc->rx_fifo_errors, itv));
+                      S_VALUE(snedp->rx_fifo_errors, snedc->rx_fifo_errors, itv),
+                      NULL);
 
                render(isdb, pre, pt_newlin,
                       "%s\ttxfifo/s", NULL,
                       cons(sv, snedc->interface, NULL),
                       NOVAL,
-                      S_VALUE(snedp->tx_fifo_errors, snedc->tx_fifo_errors, itv));
+                      S_VALUE(snedp->tx_fifo_errors, snedc->tx_fifo_errors, itv),
+                      NULL);
        }
 }
 
@@ -1165,32 +1247,38 @@ __print_funct_t render_net_nfs_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tcall/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_rpccnt, snnc->nfs_rpccnt, itv));
+              S_VALUE(snnp->nfs_rpccnt, snnc->nfs_rpccnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tretrans/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_rpcretrans, snnc->nfs_rpcretrans, itv));
+              S_VALUE(snnp->nfs_rpcretrans, snnc->nfs_rpcretrans, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tread/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_readcnt, snnc->nfs_readcnt, itv));
+              S_VALUE(snnp->nfs_readcnt, snnc->nfs_readcnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\twrite/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_writecnt, snnc->nfs_writecnt, itv));
+              S_VALUE(snnp->nfs_writecnt, snnc->nfs_writecnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\taccess/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_accesscnt, snnc->nfs_accesscnt, itv));
+              S_VALUE(snnp->nfs_accesscnt, snnc->nfs_accesscnt, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tgetatt/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snnp->nfs_getattcnt, snnc->nfs_getattcnt, itv));
+              S_VALUE(snnp->nfs_getattcnt, snnc->nfs_getattcnt, itv),
+              NULL);
 }
 
 /*
@@ -1217,57 +1305,68 @@ __print_funct_t render_net_nfsd_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tscall/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_rpccnt, snndc->nfsd_rpccnt, itv));
+              S_VALUE(snndp->nfsd_rpccnt, snndc->nfsd_rpccnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tbadcall/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_rpcbad, snndc->nfsd_rpcbad, itv));
+              S_VALUE(snndp->nfsd_rpcbad, snndc->nfsd_rpcbad, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpacket/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_netcnt, snndc->nfsd_netcnt, itv));
+              S_VALUE(snndp->nfsd_netcnt, snndc->nfsd_netcnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tudp/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_netudpcnt, snndc->nfsd_netudpcnt, itv));
+              S_VALUE(snndp->nfsd_netudpcnt, snndc->nfsd_netudpcnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\ttcp/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_nettcpcnt, snndc->nfsd_nettcpcnt, itv));
+              S_VALUE(snndp->nfsd_nettcpcnt, snndc->nfsd_nettcpcnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\thit/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_rchits, snndc->nfsd_rchits, itv));
+              S_VALUE(snndp->nfsd_rchits, snndc->nfsd_rchits, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tmiss/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_rcmisses, snndc->nfsd_rcmisses, itv));
+              S_VALUE(snndp->nfsd_rcmisses, snndc->nfsd_rcmisses, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tsread/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_readcnt, snndc->nfsd_readcnt, itv));
+              S_VALUE(snndp->nfsd_readcnt, snndc->nfsd_readcnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tswrite/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_writecnt, snndc->nfsd_writecnt, itv));
+              S_VALUE(snndp->nfsd_writecnt, snndc->nfsd_writecnt, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tsaccess/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_accesscnt, snndc->nfsd_accesscnt, itv));
+              S_VALUE(snndp->nfsd_accesscnt, snndc->nfsd_accesscnt, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tsgetatt/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snndp->nfsd_getattcnt, snndc->nfsd_getattcnt, itv));
+              S_VALUE(snndp->nfsd_getattcnt, snndc->nfsd_getattcnt, itv),
+              NULL);
 }
 
 /*
@@ -1292,27 +1391,27 @@ __print_funct_t render_net_sock_stats(struct activity *a, int isdb, char *pre,
 
        render(isdb, pre, PT_USEINT,
               "-\ttotsck", NULL, NULL,
-              snsc->sock_inuse, DNOVAL);
+              snsc->sock_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\ttcpsck", NULL, NULL,
-              snsc->tcp_inuse, DNOVAL);
+              snsc->tcp_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tudpsck",  NULL, NULL,
-              snsc->udp_inuse, DNOVAL);
+              snsc->udp_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\trawsck", NULL, NULL,
-              snsc->raw_inuse, DNOVAL);
+              snsc->raw_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tip-frag", NULL, NULL,
-              snsc->frag_inuse, DNOVAL);
+              snsc->frag_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT | pt_newlin,
               "-\ttcp-tw", NULL, NULL,
-              snsc->tcp_tw, DNOVAL);
+              snsc->tcp_tw, DNOVAL, NULL);
 }
 
 /*
@@ -1339,42 +1438,50 @@ __print_funct_t render_net_ip_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tirec/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InReceives, snic->InReceives, itv));
+              S_VALUE(snip->InReceives, snic->InReceives, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tfwddgm/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->ForwDatagrams, snic->ForwDatagrams, itv));
+              S_VALUE(snip->ForwDatagrams, snic->ForwDatagrams, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tidel/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InDelivers, snic->InDelivers, itv));
+              S_VALUE(snip->InDelivers, snic->InDelivers, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\torq/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutRequests, snic->OutRequests, itv));
+              S_VALUE(snip->OutRequests, snic->OutRequests, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tasmrq/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->ReasmReqds, snic->ReasmReqds, itv));
+              S_VALUE(snip->ReasmReqds, snic->ReasmReqds, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tasmok/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->ReasmOKs, snic->ReasmOKs, itv));
+              S_VALUE(snip->ReasmOKs, snic->ReasmOKs, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tfragok/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->FragOKs, snic->FragOKs, itv));
+              S_VALUE(snip->FragOKs, snic->FragOKs, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tfragcrt/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->FragCreates, snic->FragCreates, itv));
+              S_VALUE(snip->FragCreates, snic->FragCreates, itv),
+              NULL);
 }
 
 /*
@@ -1401,42 +1508,50 @@ __print_funct_t render_net_eip_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tihdrerr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InHdrErrors, sneic->InHdrErrors, itv));
+              S_VALUE(sneip->InHdrErrors, sneic->InHdrErrors, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiadrerr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InAddrErrors, sneic->InAddrErrors, itv));
+              S_VALUE(sneip->InAddrErrors, sneic->InAddrErrors, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiukwnpr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InUnknownProtos, sneic->InUnknownProtos, itv));
+              S_VALUE(sneip->InUnknownProtos, sneic->InUnknownProtos, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tidisc/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InDiscards, sneic->InDiscards, itv));
+              S_VALUE(sneip->InDiscards, sneic->InDiscards, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todisc/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutDiscards, sneic->OutDiscards, itv));
+              S_VALUE(sneip->OutDiscards, sneic->OutDiscards, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tonort/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutNoRoutes, sneic->OutNoRoutes, itv));
+              S_VALUE(sneip->OutNoRoutes, sneic->OutNoRoutes, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tasmf/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->ReasmFails, sneic->ReasmFails, itv));
+              S_VALUE(sneip->ReasmFails, sneic->ReasmFails, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tfragf/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->FragFails, sneic->FragFails, itv));
+              S_VALUE(sneip->FragFails, sneic->FragFails, itv),
+              NULL);
 }
 
 /*
@@ -1463,72 +1578,86 @@ __print_funct_t render_net_icmp_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\timsg/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InMsgs, snic->InMsgs, itv));
+              S_VALUE(snip->InMsgs, snic->InMsgs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tomsg/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutMsgs, snic->OutMsgs, itv));
+              S_VALUE(snip->OutMsgs, snic->OutMsgs, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tiech/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InEchos, snic->InEchos, itv));
+              S_VALUE(snip->InEchos, snic->InEchos, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiechr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InEchoReps, snic->InEchoReps, itv));
+              S_VALUE(snip->InEchoReps, snic->InEchoReps, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\toech/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutEchos, snic->OutEchos, itv));
+              S_VALUE(snip->OutEchos, snic->OutEchos, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\toechr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutEchoReps, snic->OutEchoReps, itv));
+              S_VALUE(snip->OutEchoReps, snic->OutEchoReps, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\titm/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InTimestamps, snic->InTimestamps, itv));
+              S_VALUE(snip->InTimestamps, snic->InTimestamps, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\titmr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InTimestampReps, snic->InTimestampReps, itv));
+              S_VALUE(snip->InTimestampReps, snic->InTimestampReps, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\totm/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutTimestamps, snic->OutTimestamps, itv));
+              S_VALUE(snip->OutTimestamps, snic->OutTimestamps, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\totmr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutTimestampReps, snic->OutTimestampReps, itv));
+              S_VALUE(snip->OutTimestampReps, snic->OutTimestampReps, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiadrmk/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InAddrMasks, snic->InAddrMasks, itv));
+              S_VALUE(snip->InAddrMasks, snic->InAddrMasks, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tiadrmkr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InAddrMaskReps, snic->InAddrMaskReps, itv));
+              S_VALUE(snip->InAddrMaskReps, snic->InAddrMaskReps, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\toadrmk/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutAddrMasks, snic->OutAddrMasks, itv));
+              S_VALUE(snip->OutAddrMasks, snic->OutAddrMasks, itv),
+              NULL);
        
        render(isdb, pre, pt_newlin,
               "-\toadrmkr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutAddrMaskReps, snic->OutAddrMaskReps, itv));
+              S_VALUE(snip->OutAddrMaskReps, snic->OutAddrMaskReps, itv),
+              NULL);
 }
 
 /*
@@ -1555,62 +1684,74 @@ __print_funct_t render_net_eicmp_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tierr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InErrors, sneic->InErrors, itv));
+              S_VALUE(sneip->InErrors, sneic->InErrors, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\toerr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutErrors, sneic->OutErrors, itv));
+              S_VALUE(sneip->OutErrors, sneic->OutErrors, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tidstunr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InDestUnreachs, sneic->InDestUnreachs, itv));
+              S_VALUE(sneip->InDestUnreachs, sneic->InDestUnreachs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todstunr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutDestUnreachs, sneic->OutDestUnreachs, itv));
+              S_VALUE(sneip->OutDestUnreachs, sneic->OutDestUnreachs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\titmex/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InTimeExcds, sneic->InTimeExcds, itv));
+              S_VALUE(sneip->InTimeExcds, sneic->InTimeExcds, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\totmex/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutTimeExcds, sneic->OutTimeExcds, itv));
+              S_VALUE(sneip->OutTimeExcds, sneic->OutTimeExcds, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiparmpb/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InParmProbs, sneic->InParmProbs, itv));
+              S_VALUE(sneip->InParmProbs, sneic->InParmProbs, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\toparmpb/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutParmProbs, sneic->OutParmProbs, itv));
+              S_VALUE(sneip->OutParmProbs, sneic->OutParmProbs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tisrcq/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InSrcQuenchs, sneic->InSrcQuenchs, itv));
+              S_VALUE(sneip->InSrcQuenchs, sneic->InSrcQuenchs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tosrcq/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutSrcQuenchs, sneic->OutSrcQuenchs, itv));
+              S_VALUE(sneip->OutSrcQuenchs, sneic->OutSrcQuenchs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiredir/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InRedirects, sneic->InRedirects, itv));
+              S_VALUE(sneip->InRedirects, sneic->InRedirects, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\toredir/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutRedirects, sneic->OutRedirects, itv));
+              S_VALUE(sneip->OutRedirects, sneic->OutRedirects, itv),
+              NULL);
 }
 
 /*
@@ -1637,22 +1778,26 @@ __print_funct_t render_net_tcp_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tactive/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sntp->ActiveOpens, sntc->ActiveOpens, itv));
+              S_VALUE(sntp->ActiveOpens, sntc->ActiveOpens, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tpassive/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sntp->PassiveOpens, sntc->PassiveOpens, itv));
+              S_VALUE(sntp->PassiveOpens, sntc->PassiveOpens, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiseg/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sntp->InSegs, sntc->InSegs, itv));
+              S_VALUE(sntp->InSegs, sntc->InSegs, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\toseg/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sntp->OutSegs, sntc->OutSegs, itv));
+              S_VALUE(sntp->OutSegs, sntc->OutSegs, itv),
+              NULL);
 }
 
 /*
@@ -1679,27 +1824,32 @@ __print_funct_t render_net_etcp_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tatmptf/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snetp->AttemptFails, snetc->AttemptFails, itv));
+              S_VALUE(snetp->AttemptFails, snetc->AttemptFails, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\testres/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snetp->EstabResets, snetc->EstabResets, itv));
+              S_VALUE(snetp->EstabResets, snetc->EstabResets, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tretrans/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snetp->RetransSegs, snetc->RetransSegs, itv));
+              S_VALUE(snetp->RetransSegs, snetc->RetransSegs, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tisegerr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snetp->InErrs, snetc->InErrs, itv));
+              S_VALUE(snetp->InErrs, snetc->InErrs, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\torsts/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snetp->OutRsts, snetc->OutRsts, itv));
+              S_VALUE(snetp->OutRsts, snetc->OutRsts, itv),
+              NULL);
 }
 
 /*
@@ -1726,22 +1876,26 @@ __print_funct_t render_net_udp_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tidgm/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->InDatagrams, snuc->InDatagrams, itv));
+              S_VALUE(snup->InDatagrams, snuc->InDatagrams, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todgm/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->OutDatagrams, snuc->OutDatagrams, itv));
+              S_VALUE(snup->OutDatagrams, snuc->OutDatagrams, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tnoport/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->NoPorts, snuc->NoPorts, itv));
+              S_VALUE(snup->NoPorts, snuc->NoPorts, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tidgmerr/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->InErrors, snuc->InErrors, itv));
+              S_VALUE(snup->InErrors, snuc->InErrors, itv),
+              NULL);
 }
 
 /*
@@ -1766,19 +1920,19 @@ __print_funct_t render_net_sock6_stats(struct activity *a, int isdb, char *pre,
 
        render(isdb, pre, PT_USEINT,
               "-\ttcp6sck", NULL, NULL,
-              snsc->tcp6_inuse, DNOVAL);
+              snsc->tcp6_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tudp6sck",  NULL, NULL,
-              snsc->udp6_inuse, DNOVAL);
+              snsc->udp6_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\traw6sck", NULL, NULL,
-              snsc->raw6_inuse, DNOVAL);
+              snsc->raw6_inuse, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT | pt_newlin,
               "-\tip6-frag", NULL, NULL,
-              snsc->frag6_inuse, DNOVAL);
+              snsc->frag6_inuse, DNOVAL, NULL);
 }
 
 /*
@@ -1805,52 +1959,62 @@ __print_funct_t render_net_ip6_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tirec6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InReceives6, snic->InReceives6, itv));
+              S_VALUE(snip->InReceives6, snic->InReceives6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tfwddgm6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutForwDatagrams6, snic->OutForwDatagrams6, itv));
+              S_VALUE(snip->OutForwDatagrams6, snic->OutForwDatagrams6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tidel6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InDelivers6, snic->InDelivers6, itv));
+              S_VALUE(snip->InDelivers6, snic->InDelivers6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\torq6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutRequests6, snic->OutRequests6, itv));
+              S_VALUE(snip->OutRequests6, snic->OutRequests6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tasmrq6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->ReasmReqds6, snic->ReasmReqds6, itv));
+              S_VALUE(snip->ReasmReqds6, snic->ReasmReqds6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tasmok6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->ReasmOKs6, snic->ReasmOKs6, itv));
+              S_VALUE(snip->ReasmOKs6, snic->ReasmOKs6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\timcpck6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InMcastPkts6, snic->InMcastPkts6, itv));
+              S_VALUE(snip->InMcastPkts6, snic->InMcastPkts6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tomcpck6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutMcastPkts6, snic->OutMcastPkts6, itv));
+              S_VALUE(snip->OutMcastPkts6, snic->OutMcastPkts6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tfragok6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->FragOKs6, snic->FragOKs6, itv));
+              S_VALUE(snip->FragOKs6, snic->FragOKs6, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tfragcr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->FragCreates6, snic->FragCreates6, itv));
+              S_VALUE(snip->FragCreates6, snic->FragCreates6, itv),
+              NULL);
 }
 
 /*
@@ -1877,57 +2041,68 @@ __print_funct_t render_net_eip6_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tihdrer6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InHdrErrors6, sneic->InHdrErrors6, itv));
+              S_VALUE(sneip->InHdrErrors6, sneic->InHdrErrors6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiadrer6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InAddrErrors6, sneic->InAddrErrors6, itv));
+              S_VALUE(sneip->InAddrErrors6, sneic->InAddrErrors6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiukwnp6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InUnknownProtos6, sneic->InUnknownProtos6, itv));
+              S_VALUE(sneip->InUnknownProtos6, sneic->InUnknownProtos6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\ti2big6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InTooBigErrors6, sneic->InTooBigErrors6, itv));
+              S_VALUE(sneip->InTooBigErrors6, sneic->InTooBigErrors6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tidisc6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InDiscards6, sneic->InDiscards6, itv));
+              S_VALUE(sneip->InDiscards6, sneic->InDiscards6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todisc6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutDiscards6, sneic->OutDiscards6, itv));
+              S_VALUE(sneip->OutDiscards6, sneic->OutDiscards6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tinort6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InNoRoutes6, sneic->InNoRoutes6, itv));
+              S_VALUE(sneip->InNoRoutes6, sneic->InNoRoutes6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tonort6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutNoRoutes6, sneic->OutNoRoutes6, itv));
+              S_VALUE(sneip->OutNoRoutes6, sneic->OutNoRoutes6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tasmf6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->ReasmFails6, sneic->ReasmFails6, itv));
+              S_VALUE(sneip->ReasmFails6, sneic->ReasmFails6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tfragf6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->FragFails6, sneic->FragFails6, itv));
+              S_VALUE(sneip->FragFails6, sneic->FragFails6, itv),
+              NULL);
        
        render(isdb, pre, pt_newlin,
               "-\titrpck6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InTruncatedPkts6, sneic->InTruncatedPkts6, itv));
+              S_VALUE(sneip->InTruncatedPkts6, sneic->InTruncatedPkts6, itv),
+              NULL);
 }
 
 /*
@@ -1954,87 +2129,104 @@ __print_funct_t render_net_icmp6_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\timsg6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InMsgs6, snic->InMsgs6, itv));
+              S_VALUE(snip->InMsgs6, snic->InMsgs6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tomsg6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutMsgs6, snic->OutMsgs6, itv));
+              S_VALUE(snip->OutMsgs6, snic->OutMsgs6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tiech6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InEchos6, snic->InEchos6, itv));
+              S_VALUE(snip->InEchos6, snic->InEchos6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiechr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InEchoReplies6, snic->InEchoReplies6, itv));
+              S_VALUE(snip->InEchoReplies6, snic->InEchoReplies6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\toechr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutEchoReplies6, snic->OutEchoReplies6, itv));
+              S_VALUE(snip->OutEchoReplies6, snic->OutEchoReplies6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tigmbq6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InGroupMembQueries6, snic->InGroupMembQueries6, itv));
+              S_VALUE(snip->InGroupMembQueries6, snic->InGroupMembQueries6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tigmbr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InGroupMembResponses6, snic->InGroupMembResponses6, itv));
+              S_VALUE(snip->InGroupMembResponses6, snic->InGroupMembResponses6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\togmbr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutGroupMembResponses6, snic->OutGroupMembResponses6, itv));
+              S_VALUE(snip->OutGroupMembResponses6, snic->OutGroupMembResponses6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tigmbrd6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InGroupMembReductions6, snic->InGroupMembReductions6, itv));
+              S_VALUE(snip->InGroupMembReductions6, snic->InGroupMembReductions6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\togmbrd6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutGroupMembReductions6, snic->OutGroupMembReductions6, itv));
+              S_VALUE(snip->OutGroupMembReductions6, snic->OutGroupMembReductions6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tirtsol6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InRouterSolicits6, snic->InRouterSolicits6, itv));
+              S_VALUE(snip->InRouterSolicits6, snic->InRouterSolicits6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tortsol6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutRouterSolicits6, snic->OutRouterSolicits6, itv));
+              S_VALUE(snip->OutRouterSolicits6, snic->OutRouterSolicits6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tirtad6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InRouterAdvertisements6, snic->InRouterAdvertisements6, itv));
+              S_VALUE(snip->InRouterAdvertisements6, snic->InRouterAdvertisements6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tinbsol6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InNeighborSolicits6, snic->InNeighborSolicits6, itv));
+              S_VALUE(snip->InNeighborSolicits6, snic->InNeighborSolicits6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tonbsol6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutNeighborSolicits6, snic->OutNeighborSolicits6, itv));
+              S_VALUE(snip->OutNeighborSolicits6, snic->OutNeighborSolicits6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\tinbad6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->InNeighborAdvertisements6, snic->InNeighborAdvertisements6, itv));
+              S_VALUE(snip->InNeighborAdvertisements6, snic->InNeighborAdvertisements6, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tonbad6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snip->OutNeighborAdvertisements6, snic->OutNeighborAdvertisements6, itv));
+              S_VALUE(snip->OutNeighborAdvertisements6, snic->OutNeighborAdvertisements6, itv),
+              NULL);
 }
 
 /*
@@ -2061,57 +2253,68 @@ __print_funct_t render_net_eicmp6_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tierr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InErrors6, sneic->InErrors6, itv));
+              S_VALUE(sneip->InErrors6, sneic->InErrors6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tidtunr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InDestUnreachs6, sneic->InDestUnreachs6, itv));
+              S_VALUE(sneip->InDestUnreachs6, sneic->InDestUnreachs6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todtunr6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutDestUnreachs6, sneic->OutDestUnreachs6, itv));
+              S_VALUE(sneip->OutDestUnreachs6, sneic->OutDestUnreachs6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\titmex6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InTimeExcds6, sneic->InTimeExcds6, itv));
+              S_VALUE(sneip->InTimeExcds6, sneic->InTimeExcds6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\totmex6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutTimeExcds6, sneic->OutTimeExcds6, itv));
+              S_VALUE(sneip->OutTimeExcds6, sneic->OutTimeExcds6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiprmpb6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InParmProblems6, sneic->InParmProblems6, itv));
+              S_VALUE(sneip->InParmProblems6, sneic->InParmProblems6, itv),
+              NULL);
        
        render(isdb, pre, PT_NOFLAG,
               "-\toprmpb6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutParmProblems6, sneic->OutParmProblems6, itv));
+              S_VALUE(sneip->OutParmProblems6, sneic->OutParmProblems6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tiredir6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InRedirects6, sneic->InRedirects6, itv));
+              S_VALUE(sneip->InRedirects6, sneic->InRedirects6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\toredir6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutRedirects6, sneic->OutRedirects6, itv));
+              S_VALUE(sneip->OutRedirects6, sneic->OutRedirects6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tipck2b6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->InPktTooBigs6, sneic->InPktTooBigs6, itv));
+              S_VALUE(sneip->InPktTooBigs6, sneic->InPktTooBigs6, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\topck2b6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(sneip->OutPktTooBigs6, sneic->OutPktTooBigs6, itv));
+              S_VALUE(sneip->OutPktTooBigs6, sneic->OutPktTooBigs6, itv),
+              NULL);
 }
 
 /*
@@ -2138,22 +2341,26 @@ __print_funct_t render_net_udp6_stats(struct activity *a, int isdb, char *pre,
        render(isdb, pre, PT_NOFLAG,
               "-\tidgm6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->InDatagrams6, snuc->InDatagrams6, itv));
+              S_VALUE(snup->InDatagrams6, snuc->InDatagrams6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\todgm6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->OutDatagrams6, snuc->OutDatagrams6, itv));
+              S_VALUE(snup->OutDatagrams6, snuc->OutDatagrams6, itv),
+              NULL);
 
        render(isdb, pre, PT_NOFLAG,
               "-\tnoport6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->NoPorts6, snuc->NoPorts6, itv));
+              S_VALUE(snup->NoPorts6, snuc->NoPorts6, itv),
+              NULL);
 
        render(isdb, pre, pt_newlin,
               "-\tidgmer6/s", NULL, NULL,
               NOVAL,
-              S_VALUE(snup->InErrors6, snuc->InErrors6, itv));
+              S_VALUE(snup->InErrors6, snuc->InErrors6, itv),
+              NULL);
 }
 
 /*
@@ -2189,14 +2396,16 @@ __print_funct_t render_pwr_cpufreq_stats(struct activity *a, int isdb, char *pre
                                       "all\tMHz",
                                       "-1", NULL,
                                       NOVAL,
-                                      ((double) spc->cpufreq) / 100);
+                                      ((double) spc->cpufreq) / 100,
+                                      NULL);
                        }
                        else {
                                render(isdb, pre, pt_newlin,
                                       "cpu%d\tMHz",
                                       "%d", cons(iv, i - 1, NOVAL),
                                       NOVAL,
-                                      ((double) spc->cpufreq) / 100);
+                                      ((double) spc->cpufreq) / 100,
+                                      NULL);
                        }
                }
        }
@@ -2225,35 +2434,29 @@ __print_funct_t render_pwr_fan_stats(struct activity *a, int isdb, char *pre,
        for (i = 0; i < a->nr; i++) {
                spc = (struct stats_pwr_fan *) ((char *) a->buf[curr] + i * a->msize);
 
-               if (isdb) {
-                       render(isdb, pre, PT_USEINT,
-                              "%s\tfan%d\trpm",
-                              "%s", cons(iv, spc->device, i + 1, NOVAL),
-                              i + 1,
-                              NOVAL);
-                       render(isdb, pre, PT_NOFLAG,
-                              "%s\trpm",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              spc->rpm);
-                       render(isdb, pre, pt_newlin,
-                              "%s\tdrpm",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              spc->rpm - spc->rpm_min);
-               }
-               else {
-                       render(isdb, pre, PT_NOFLAG,
-                              "fan%d\trpm",
-                              "%d", cons(iv, i + 1, NOVAL),
-                              NOVAL,
-                              spc->rpm);
-                       render(isdb, pre, pt_newlin,
-                              "fan%d\tdrpm",
-                              "%d", cons(iv, i + 1, NOVAL),
-                              NOVAL,
-                              spc->rpm - spc->rpm_min);
-               }
+               render(isdb, pre, PT_USESTR,
+                      "fan%d\tDEVICE",
+                      "%d",
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      spc->device);
+
+               render(isdb, pre, PT_NOFLAG,
+                      "fan%d\trpm",
+                      NULL,
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      spc->rpm,
+                      NULL);
+
+               render(isdb, pre, pt_newlin,
+                      "fan%d\tdrpm",
+                      NULL,
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      spc->rpm - spc->rpm_min,
+                      NULL);
        }
 }
 
@@ -2280,39 +2483,31 @@ __print_funct_t render_pwr_temp_stats(struct activity *a, int isdb, char *pre,
        for (i = 0; i < a->nr; i++) {
                spc = (struct stats_pwr_temp *) ((char *) a->buf[curr] + i * a->msize);
 
-               if (isdb) {
-                       render(isdb, pre, PT_USEINT,
-                              "%s\ttemp%d\tdegC",
-                              "%s", cons(iv, spc->device, i + 1, NOVAL),
-                              i + 1,
-                              NOVAL);
-                       render(isdb, pre, PT_NOFLAG,
-                              "%s\tdegC",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              spc->temp);
-                       render(isdb, pre, pt_newlin,
-                              "%s\t%%temp",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              (spc->temp_max - spc->temp_min) ?
-                              (spc->temp - spc->temp_min) / (spc->temp_max - spc->temp_min) * 100 :
-                              0.0);
-               }
-               else {
-                       render(isdb, pre, PT_NOFLAG,
-                              "temp%d\tdegC",
-                              "%s", cons(iv, i + 1, NOVAL),
-                              NOVAL,
-                              spc->temp);
-                       render(isdb, pre, pt_newlin,
-                              "temp%d\t%%temp",
-                              "%s", cons(iv, i + 1, NOVAL),
-                              NOVAL,
-                              (spc->temp_max - spc->temp_min) ?
-                              (spc->temp - spc->temp_min) / (spc->temp_max - spc->temp_min) * 100 :
-                              0.0);
-               }
+               render(isdb, pre, PT_USESTR,
+                      "temp%d\tDEVICE",
+                      "%d",
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      spc->device);
+
+               render(isdb, pre, PT_NOFLAG,
+                      "temp%d\tdegC",
+                      NULL,
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      spc->temp,
+                      NULL);
+
+               render(isdb, pre, pt_newlin,
+                      "temp%d\t%%temp",
+                      NULL,
+                      cons(iv, i + 1, NOVAL),
+                      NOVAL,
+                      (spc->temp_max - spc->temp_min) ?
+                      (spc->temp - spc->temp_min) / (spc->temp_max - spc->temp_min) * 100 :
+                      0.0,
+                      NULL);
        }
 }
 
@@ -2339,39 +2534,31 @@ __print_funct_t render_pwr_in_stats(struct activity *a, int isdb, char *pre,
        for (i = 0; i < a->nr; i++) {
                spc = (struct stats_pwr_in *) ((char *) a->buf[curr] + i * a->msize);
 
-               if (isdb) {
-                       render(isdb, pre, PT_USEINT,
-                              "%s\tin%d\tinV",
-                              "%s", cons(iv, spc->device, i, NOVAL),
-                              i,
-                              NOVAL);
-                       render(isdb, pre, PT_NOFLAG,
-                              "%s\tinV",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              spc->in);
-                       render(isdb, pre, pt_newlin,
-                              "%s\t%%in",
-                              NULL, cons(iv, spc->device, NOVAL),
-                              NOVAL,
-                              (spc->in_max - spc->in_min) ?
-                              (spc->in - spc->in_min) / (spc->in_max - spc->in_min) * 100 :
-                              0.0);
-               }
-               else {
-                       render(isdb, pre, PT_NOFLAG,
-                              "in%d\tinV",
-                              "%s", cons(iv, i, NOVAL),
-                              NOVAL,
-                              spc->in);
-                       render(isdb, pre, pt_newlin,
-                              "in%d\t%%in",
-                              "%s", cons(iv, i, NOVAL),
-                              NOVAL,
-                              (spc->in_max - spc->in_min) ?
-                              (spc->in - spc->in_min) / (spc->in_max - spc->in_min) * 100 :
-                              0.0);
-               }
+               render(isdb, pre, PT_USESTR,
+                      "in%d\tDEVICE",
+                      "%d",
+                      cons(iv, i, NOVAL),
+                      NOVAL,
+                      NOVAL,
+                      spc->device);
+
+               render(isdb, pre, PT_NOFLAG,
+                      "in%d\tinV",
+                      NULL,
+                      cons(iv, i, NOVAL),
+                      NOVAL,
+                      spc->in,
+                      NULL);
+
+               render(isdb, pre, pt_newlin,
+                      "in%d\t%%in",
+                      NULL,
+                      cons(iv, i, NOVAL),
+                      NOVAL,
+                      (spc->in_max - spc->in_min) ?
+                      (spc->in - spc->in_min) / (spc->in_max - spc->in_min) * 100 :
+                      0.0,
+                      NULL);
        }
 }
 
@@ -2397,17 +2584,17 @@ __print_funct_t render_huge_stats(struct activity *a, int isdb, char *pre,
 
        render(isdb, pre, PT_USEINT,
               "-\tkbhugfree", NULL, NULL,
-              smc->frhkb, DNOVAL);
+              smc->frhkb, DNOVAL, NULL);
 
        render(isdb, pre, PT_USEINT,
               "-\tkbhugused", NULL, NULL,
-              smc->tlhkb - smc->frhkb, DNOVAL);
+              smc->tlhkb - smc->frhkb, DNOVAL, NULL);
 
        render(isdb, pre, pt_newlin,
               "-\t%%hugused", NULL, NULL, NOVAL,
               smc->tlhkb ?
               SP_VALUE(smc->frhkb, smc->tlhkb, smc->tlhkb) :
-              0.0);
+              0.0, NULL);
 }
 
 /*
@@ -2461,14 +2648,16 @@ __print_funct_t render_pwr_wghfreq_stats(struct activity *a, int isdb, char *pre
                                       "all\twghMHz",
                                       "-1", NULL,
                                       NOVAL,
-                                      tis ? ((double) tisfreq) / tis : 0.0);
+                                      tis ? ((double) tisfreq) / tis : 0.0,
+                                      NULL);
                        }
                        else {
                                render(isdb, pre, pt_newlin,
                                       "cpu%d\twghMHz",
                                       "%d", cons(iv, i - 1, NOVAL),
                                       NOVAL,
-                                      tis ? ((double) tisfreq) / tis : 0.0);
+                                      tis ? ((double) tisfreq) / tis : 0.0,
+                                      NULL);
                        }
                }
        }
index 41ef4a08a11af4a9859797020b6892c1b2b23743..dbced2520c5816d624c0e9da924016e9ee3a9752 100644 (file)
@@ -15,8 +15,9 @@
  */
 
 #define PT_NOFLAG  0x0000      /* Prevent undescribed '0' in render calls */
-#define PT_USEINT  0x0001      /* Use the integer final arg, not double */
+#define PT_USEINT  0x0001      /* Use the integer arg, not double nor string */
 #define PT_NEWLIN  0x0002      /* Terminate the current output line */
+#define PT_USESTR  0x0004      /* Use the string arg */
 
 #define NOVAL      0           /* For placeholder zeros */
 #define DNOVAL     0.0         /* Wilma!  */