misc: adapted other programs to changes, <MEMINFO> api

This patch just brings *most* other programs into line
with those changes recently made in the <meminfo> API.

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2016-05-11 12:00:00 -05:00 committed by Craig Small
parent 407f1b71de
commit d94af0d07a
3 changed files with 43 additions and 54 deletions

54
free.c
View File

@ -204,7 +204,7 @@ int main(int argc, char **argv)
int c, flags = 0, unit_set = 0; int c, flags = 0, unit_set = 0;
char *endptr; char *endptr;
struct commandline_arguments args; struct commandline_arguments args;
struct procps_meminfo *mem_info; struct procps_meminfo *mem_info = NULL;
/* /*
* For long options that have no equivalent short option, use a * For long options that have no equivalent short option, use a
@ -357,10 +357,6 @@ int main(int argc, char **argv)
xerrx(EXIT_FAILURE, xerrx(EXIT_FAILURE,
_("Unable to create meminfo structure")); _("Unable to create meminfo structure"));
do { do {
if (procps_meminfo_read(mem_info) < 0)
xerrx(EXIT_FAILURE,
_("Unable to read meminfo information"));
/* Translation Hint: You can use 9 character words in /* Translation Hint: You can use 9 character words in
* the header, and the words need to be right align to * the header, and the words need to be right align to
* beginning of a number. */ * beginning of a number. */
@ -371,20 +367,20 @@ int main(int argc, char **argv)
} }
printf("\n"); printf("\n");
printf("%-7s", _("Mem:")); printf("%-7s", _("Mem:"));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_TOTAL), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_TOTAL), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_USED), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_USED), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_FREE), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_FREE), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_SHARED), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_SHARED), flags, args));
if (flags & FREE_WIDE) { if (flags & FREE_WIDE) {
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_BUFFERS), printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_BUFFERS),
flags, args)); flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_CACHED) printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_CACHED)
, flags, args)); , flags, args));
} else { } else {
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_BUFFERS)+ printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_BUFFERS)+
procps_meminfo_get(mem_info, PROCPS_MEM_CACHED), flags, args)); procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_CACHED), flags, args));
} }
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEM_AVAILABLE), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_AVAILABLE), flags, args));
printf("\n"); printf("\n");
/* /*
* Print low vs. high information, if the user requested it. * Print low vs. high information, if the user requested it.
@ -394,35 +390,35 @@ int main(int argc, char **argv)
*/ */
if (flags & FREE_LOHI) { if (flags & FREE_LOHI) {
printf("%-7s", _("Low:")); printf("%-7s", _("Low:"));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMLO_TOTAL), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMLO_TOTAL), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMLO_USED), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMLO_USED), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMLO_FREE), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMLO_FREE), flags, args));
printf("\n"); printf("\n");
printf("%-7s", _("High:")); printf("%-7s", _("High:"));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMHI_TOTAL), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMHI_TOTAL), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMHI_USED), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMHI_USED), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMHI_FREE), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEMHI_FREE), flags, args));
printf("\n"); printf("\n");
} }
printf("%-7s", _("Swap:")); printf("%-7s", _("Swap:"));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_SWAP_TOTAL), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_TOTAL), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_SWAP_USED), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_USED), flags, args));
printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_SWAP_FREE), flags, args)); printf(" %11s", scale_size(procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_FREE), flags, args));
printf("\n"); printf("\n");
if (flags & FREE_TOTAL) { if (flags & FREE_TOTAL) {
printf("%-7s", _("Total:")); printf("%-7s", _("Total:"));
printf(" %11s", scale_size( printf(" %11s", scale_size(
procps_meminfo_get(mem_info, PROCPS_MEM_TOTAL)+ procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_TOTAL)+
procps_meminfo_get(mem_info, PROCPS_SWAP_TOTAL), flags, args)); procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_TOTAL), flags, args));
printf(" %11s", scale_size( printf(" %11s", scale_size(
procps_meminfo_get(mem_info, PROCPS_MEM_USED)+ procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_USED)+
procps_meminfo_get(mem_info, PROCPS_SWAP_USED), flags, args)); procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_USED), flags, args));
printf(" %11s", scale_size( printf(" %11s", scale_size(
procps_meminfo_get(mem_info, PROCPS_MEM_FREE)+ procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_FREE)+
procps_meminfo_get(mem_info, PROCPS_SWAP_FREE), flags, args)); procps_meminfo_get(mem_info, PROCPS_MEMINFO_SWAP_FREE), flags, args));
printf("\n"); printf("\n");
} }
fflush(stdout); fflush(stdout);

View File

@ -104,10 +104,7 @@ static void get_memory_total()
if (procps_meminfo_new(&mem_info) < 0) if (procps_meminfo_new(&mem_info) < 0)
xerrx(EXIT_FAILURE, xerrx(EXIT_FAILURE,
_("Unable to create meminfo structure")); _("Unable to create meminfo structure"));
if (procps_meminfo_read(mem_info) < 0) memory_total = procps_meminfo_get(mem_info, PROCPS_MEMINFO_MEM_TOTAL);
xerrx(EXIT_FAILURE,
_("Unable to read meminfo information"));
memory_total = procps_meminfo_get(mem_info, PROCPS_MEM_TOTAL);
procps_meminfo_unref(&mem_info); procps_meminfo_unref(&mem_info);
} }

View File

@ -202,13 +202,12 @@ static const char Graph_bars[] = "||||||||||||||||||||||||||||||||||||||||||||||
static struct procps_meminfo *Mem_ctx; static struct procps_meminfo *Mem_ctx;
static struct meminfo_stack *Mem_stack; static struct meminfo_stack *Mem_stack;
static enum meminfo_item Mem_items[] = { static enum meminfo_item Mem_items[] = {
PROCPS_MEM_FREE, PROCPS_MEM_USED, PROCPS_MEM_TOTAL, PROCPS_MEMINFO_MEM_FREE, PROCPS_MEMINFO_MEM_USED, PROCPS_MEMINFO_MEM_TOTAL,
PROCPS_MEM_CACHED, PROCPS_MEM_BUFFERS, PROCPS_MEM_AVAILABLE, PROCPS_MEMINFO_MEM_CACHED, PROCPS_MEMINFO_MEM_BUFFERS, PROCPS_MEMINFO_MEM_AVAILABLE,
PROCPS_SWAP_TOTAL, PROCPS_SWAP_FREE, PROCPS_SWAP_USED, PROCPS_MEMINFO_SWAP_TOTAL, PROCPS_MEMINFO_SWAP_FREE, PROCPS_MEMINFO_SWAP_USED };
PROCPS_MEM_stack_end };
enum Rel_memitems { enum Rel_memitems {
mem_FREE, mem_USED, mem_TOTAL, mem_CACHE, mem_BUFFS, mem_FRE, mem_USE, mem_TOT, mem_QUE, mem_BUF, mem_AVL,
mem_AVAIL, swp_TOTAL, swp_FREE, swp_USED }; swp_TOT, swp_FRE, swp_USE };
// mem stack results extractor macro, where e=rel enum // mem stack results extractor macro, where e=rel enum
#define MEM_VAL(e) Mem_stack->head[e].result.ul_int #define MEM_VAL(e) Mem_stack->head[e].result.ul_int
// --- <proc/pids.h> -------------------------------------------------- // --- <proc/pids.h> --------------------------------------------------
@ -2240,8 +2239,7 @@ static void sysinfo_refresh (int forced) {
/*** hotplug_acclimated ***/ /*** hotplug_acclimated ***/
if (3 <= cur_secs - mem_secs) { if (3 <= cur_secs - mem_secs) {
// 'stack_fill' also implies 'read', saving us one more call if (!(Mem_stack = procps_meminfo_select(Mem_ctx, Mem_items, MAXTBL(Mem_items))))
if ((procps_meminfo_stack_fill(Mem_ctx, Mem_stack) < 0))
error_exit(fmtmk(N_fmt(LIB_errormem_fmt),__LINE__)); error_exit(fmtmk(N_fmt(LIB_errormem_fmt),__LINE__));
mem_secs = cur_secs; mem_secs = cur_secs;
} }
@ -2826,8 +2824,6 @@ static void before (char *me) {
// prepare for memory stats from new library API ... // prepare for memory stats from new library API ...
if (procps_meminfo_new(&Mem_ctx) < 0) if (procps_meminfo_new(&Mem_ctx) < 0)
error_exit(fmtmk(N_fmt(LIB_errormem_fmt),__LINE__)); error_exit(fmtmk(N_fmt(LIB_errormem_fmt),__LINE__));
if (!(Mem_stack = procps_meminfo_stack_alloc(Mem_ctx, MAXTBL(Mem_items), Mem_items)))
error_exit(fmtmk(N_fmt(LIB_errormem_fmt),__LINE__));
// establish max depth for newlib pids stack (# of result structs) // establish max depth for newlib pids stack (# of result structs)
Pids_itms = alloc_c(sizeof(enum pids_item) * MAXTBL(Fieldstab)); Pids_itms = alloc_c(sizeof(enum pids_item) * MAXTBL(Fieldstab));
@ -4784,13 +4780,13 @@ numa_nope:
}; };
char used[SMLBUFSIZ], util[SMLBUFSIZ], dual[MEDBUFSIZ]; char used[SMLBUFSIZ], util[SMLBUFSIZ], dual[MEDBUFSIZ];
int ix = w->rc.graph_mems - 1; int ix = w->rc.graph_mems - 1;
float pct_used = (float)MEM_VAL(mem_USED) * (100.0 / (float)MEM_VAL(mem_TOTAL)), float pct_used = (float)MEM_VAL(mem_USE) * (100.0 / (float)MEM_VAL(mem_TOT)),
#ifdef MEMGRAPH_OLD #ifdef MEMGRAPH_OLD
pct_misc = (float)(MEM_VAL(mem_BUFFS) + MEM_VAL(mem_CACHE)) * (100.0 / (float)MEM_VAL(mem_TOTAL)), pct_misc = (float)(MEM_VAL(mem_BUF) + MEM_VAL(mem_QUE)) * (100.0 / (float)MEM_VAL(mem_TOT)),
#else #else
pct_misc = (float)(MEM_VAL(mem_TOTAL) - MEM_VAL(mem_AVAIL) - MEM_VAL(mem_USED)) * (100.0 / (float)MEM_VAL(mem_TOTAL)), pct_misc = (float)(MEM_VAL(mem_TOT) - MEM_VAL(mem_AVL) - MEM_VAL(mem_USE)) * (100.0 / (float)MEM_VAL(mem_TOT)),
#endif #endif
pct_swap = MEM_VAL(swp_TOTAL) ? (float)MEM_VAL(swp_USED) * (100.0 / (float)MEM_VAL(swp_TOTAL)) : 0; pct_swap = MEM_VAL(swp_TOT) ? (float)MEM_VAL(swp_USE) * (100.0 / (float)MEM_VAL(swp_TOT)) : 0;
#ifndef QUICK_GRAPHS #ifndef QUICK_GRAPHS
int num_used = (int)((pct_used * Graph_adj) + .5), int num_used = (int)((pct_used * Graph_adj) + .5),
num_misc = (int)((pct_misc * Graph_adj) + .5); num_misc = (int)((pct_misc * Graph_adj) + .5);
@ -4803,16 +4799,16 @@ numa_nope:
#endif #endif
snprintf(dual, sizeof(dual), "%s%s", used, util); snprintf(dual, sizeof(dual), "%s%s", used, util);
snprintf(util, sizeof(util), gtab[ix].swap, (int)((pct_swap * Graph_adj) + .5), gtab[ix].type); snprintf(util, sizeof(util), gtab[ix].swap, (int)((pct_swap * Graph_adj) + .5), gtab[ix].type);
prT(bfT(0), mkM(MEM_VAL(mem_TOTAL))); prT(bfT(1), mkM(MEM_VAL(swp_TOTAL))); prT(bfT(0), mkM(MEM_VAL(mem_TOT))); prT(bfT(1), mkM(MEM_VAL(swp_TOT)));
show_special(0, fmtmk( "%s %s:~3%#5.1f~2/%-9.9s~3[~1%-*s]~1\n%s %s:~3%#5.1f~2/%-9.9s~3[~1%-*s]~1\n" show_special(0, fmtmk( "%s %s:~3%#5.1f~2/%-9.9s~3[~1%-*s]~1\n%s %s:~3%#5.1f~2/%-9.9s~3[~1%-*s]~1\n"
, scT(label), N_txt(WORD_abv_mem_txt), pct_used + pct_misc, bfT(0), Graph_len +4, dual , scT(label), N_txt(WORD_abv_mem_txt), pct_used + pct_misc, bfT(0), Graph_len +4, dual
, scT(label), N_txt(WORD_abv_swp_txt), pct_swap, bfT(1), Graph_len +2, util)); , scT(label), N_txt(WORD_abv_swp_txt), pct_swap, bfT(1), Graph_len +2, util));
} else { } else {
unsigned long my_misc = MEM_VAL(mem_BUFFS) + MEM_VAL(mem_CACHE); unsigned long my_misc = MEM_VAL(mem_BUF) + MEM_VAL(mem_QUE);
prT(bfT(0), mkM(MEM_VAL(mem_TOTAL))); prT(bfT(1), mkM(MEM_VAL(mem_FREE))); prT(bfT(0), mkM(MEM_VAL(mem_TOT))); prT(bfT(1), mkM(MEM_VAL(mem_FRE)));
prT(bfT(2), mkM(MEM_VAL(mem_USED))); prT(bfT(3), mkM(my_misc)); prT(bfT(2), mkM(MEM_VAL(mem_USE))); prT(bfT(3), mkM(my_misc));
prT(bfT(4), mkM(MEM_VAL(swp_TOTAL))); prT(bfT(5), mkM(MEM_VAL(swp_FREE))); prT(bfT(4), mkM(MEM_VAL(swp_TOT))); prT(bfT(5), mkM(MEM_VAL(swp_FRE)));
prT(bfT(6), mkM(MEM_VAL(swp_USED))); prT(bfT(7), mkM(MEM_VAL(mem_AVAIL))); prT(bfT(6), mkM(MEM_VAL(swp_USE))); prT(bfT(7), mkM(MEM_VAL(mem_AVL)));
show_special(0, fmtmk(N_unq(MEMORY_lines_fmt) show_special(0, fmtmk(N_unq(MEMORY_lines_fmt)
, scT(label), N_txt(WORD_abv_mem_txt), bfT(0), bfT(1), bfT(2), bfT(3) , scT(label), N_txt(WORD_abv_mem_txt), bfT(0), bfT(1), bfT(2), bfT(3)
, scT(label), N_txt(WORD_abv_swp_txt), bfT(4), bfT(5), bfT(6), bfT(7) , scT(label), N_txt(WORD_abv_swp_txt), bfT(4), bfT(5), bfT(6), bfT(7)
@ -4961,7 +4957,7 @@ static const char *task_show (const WIN_t *q, struct pids_stack *p) {
break; break;
/* ul_int, scale_pcnt */ /* ul_int, scale_pcnt */
case EU_MEM: case EU_MEM:
cp = scale_pcnt((float)rSv(EU_RES, ul_int) * 100 / MEM_VAL(mem_TOTAL), W, Jn); cp = scale_pcnt((float)rSv(EU_RES, ul_int) * 100 / MEM_VAL(mem_TOT), W, Jn);
break; break;
/* ul_int, make_str with special handling */ /* ul_int, make_str with special handling */
case EU_FLG: case EU_FLG: