* followed by @u_nr unsigned int fields.
*
* IN:
- * @llu_nr Number of unsigned long long fields composing the structure.
- * @lu_nr Number of unsigned long fields composing the structure.
- * @u_nr Number of unsigned int fields composing the structure.
+ * @types_nr Number of fields whose type is "long long", "long" and "int"
+ * composing the structure.
* @cs Pointer on current sample statistics structure.
* @ps Pointer on previous sample statistics structure (may be NULL).
* @itv Interval of time in jiffies.
* @spmax Array containg the possible new max values for current activity.
***************************************************************************
*/
-void save_extrema(int llu_nr, int lu_nr, int u_nr, void *cs, void *ps,
- unsigned long long itv, double *spmin, double *spmax, int g_fields[])
+void save_extrema(int types_nr[], void *cs, void *ps, unsigned long long itv,
+ double *spmin, double *spmax, int g_fields[])
{
unsigned long long *lluc, *llup;
unsigned long *luc, *lup;
/* Compare unsigned long long fields */
lluc = (unsigned long long *) cs;
llup = (unsigned long long *) ps;
- for (i = 0; i < llu_nr; i++, m++) {
+ for (i = 0; i < types_nr[0]; i++, m++) {
if (ps) {
val = *lluc < *llup ? 0.0 : S_VALUE(*llup, *lluc, itv);
}
/* Compare unsigned long fields */
luc = (unsigned long *) lluc;
lup = (unsigned long *) llup;
- for (i = 0; i < lu_nr; i++, m++) {
+ for (i = 0; i < types_nr[1]; i++, m++) {
if (ps) {
val = *luc < *lup ? 0.0 : S_VALUE(*lup, *luc, itv);
}
/* Compare unsigned int fields */
uc = (unsigned int *) luc;
up = (unsigned int *) lup;
- for (i = 0; i < u_nr; i++, m++) {
+ for (i = 0; i < types_nr[2]; i++, m++) {
if (ps) {
val = *uc < *up ? 0.0 : S_VALUE(*up, *uc, itv);
}
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(1, 1, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* proc/s */
lnappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 2, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* pswpin/s */
lnappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 8, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* pgpgin/s */
lnappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(5, 0, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/*
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 17, 0, (void *) a->buf[curr], NULL,
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
/* Compute %memused min/max values */
tval = smc->tlmkb ? SP_VALUE(smc->frmkb, smc->tlmkb, smc->tlmkb) : 0.0;
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 0, 4, (void *) a->buf[curr], NULL,
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
/* dentunusd */
lniappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 2, 4, (void *) a->buf[curr], NULL,
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
/* runq-sz */
lniappend(record_hdr->ust_time - svg_p->ust_time_ref,
"await", "svctm",
"%util"};
int g_fields[] = {0, 1, 2};
+ int local_types_nr[] = {1, 0, 0};
static double *spmin, *spmax;
static char **out;
static int *outsize;
}
/* Check for min/max values */
- save_extrema(1, 0, 0, (void *) sdc, (void *) sdp,
+ save_extrema(local_types_nr, (void *) sdc, (void *) sdp,
itv, spmin + pos, spmax + pos, g_fields);
rkB = S_VALUE(sdp->rd_sect, sdc->rd_sect, itv) / 2;
"rxcmp/s", "txcmp/s", "rxmcst/s",
"%ifutil"};
int g_fields[] = {0, 1, 2, 3, 4, 5, 6};
+ int local_types_nr[] = {7, 0, 0};
static double *spmin, *spmax;
static char **out;
static int *outsize;
}
/* Check for min/max values */
- save_extrema(7, 0, 0, (void *) sndc, (void *) sndp,
+ save_extrema(local_types_nr, (void *) sndc, (void *) sndp,
itv, spmin + pos, spmax + pos, g_fields);
rxkb = S_VALUE(sndp->rx_bytes, sndc->rx_bytes, itv);
}
/* Check for min/max values */
- save_extrema(9, 0, 0, (void *) snedc, (void *) snedp,
+ save_extrema(a->gtypes_nr, (void *) snedc, (void *) snedp,
itv, spmin + pos, spmax + pos, g_fields);
/* rxerr/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 0, 6, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* call/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 0, 11, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* scall/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 0, 6, (void *) a->buf[curr], NULL,
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
/* totsck */
lniappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(8, 0, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* irec/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(8, 0, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* ihdrerr/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 14, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* imsg/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 12, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* ierr/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 4, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* active/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 5, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* atmptf/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 4, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* idgm/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 0, 4, (void *) a->buf[curr], NULL,
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
/* tcp6sck */
lniappend(record_hdr->ust_time - svg_p->ust_time_ref,
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(10, 0, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* irec6/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(11, 0, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* ihdrer6/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 17, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* imsg6/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 11, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* ierr6/s */
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 4, 0, (void *) a->buf[curr], (void *) a->buf[!curr],
+ save_extrema(a->gtypes_nr, (void *) a->buf[curr], (void *) a->buf[!curr],
itv, spmin, spmax, g_fields);
/* idgm6/s */
char *g_title[] = {"~kbhugfree", "~kbhugused",
"%hugused"};
int g_fields[] = {0};
+ int local_types_nr[] = {0, 1, 0};
static double *spmin, *spmax;
static char **out;
static int *outsize;
if (action & F_MAIN) {
/* Check for min/max values */
- save_extrema(0, 1, 0, (void *) a->buf[curr], NULL,
+ save_extrema(local_types_nr, (void *) a->buf[curr], NULL,
itv, spmin, spmax, g_fields);
if (smc->tlhkb - smc->frhkb < *(spmin + 1)) {
}
/* Look for min/max values */
- save_extrema(0, 4, 0, (void *) sfcc, (void *) sfcp,
+ save_extrema(a->gtypes_nr, (void *) sfcc, (void *) sfcp,
itv, spmin + pos, spmax + pos, g_fields);
/* fch_rxf/s */
pos = i * 5;
/* Check for min/max values */
- save_extrema(0, 0, 5, (void *) ssnc, (void *) ssnp,
+ save_extrema(a->gtypes_nr, (void *) ssnc, (void *) ssnp,
itv, spmin + pos, spmax + pos, g_fields);
/* total/s */