top: tweak newlib interface, as more experience gained

Now that the dust is settling following an initial API
library effort, it is apparent my naming standards may
not have always been observed. This was a minor crime,
since those standards are unwritten (& not apparent?).

Basically, top has always capitalized the first letter
of global variables in an effort to distinguish global
definitions from local variables later in the program.

So this patch alters the new API variables to conform,
while also explicitly using 'context' for key structs.

Lastly, top now employs the new '#include <proc/name>'
conventions for the new/converted module header files.

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2015-06-30 00:00:00 -05:00 committed by Craig Small
parent e88b11f176
commit 9830fdf0ae
3 changed files with 38 additions and 37 deletions

View File

@ -51,14 +51,14 @@
#include "../include/nls.h" #include "../include/nls.h"
#include "../proc/devname.h" #include "../proc/devname.h"
#include "../proc/meminfo.h" #include <proc/meminfo.h>
#include "../proc/procps.h" #include "../proc/procps.h"
#include "../proc/readproc.h" #include "../proc/readproc.h"
#include "../proc/readstat.h" #include <proc/readstat.h>
#include "../proc/sysinfo.h" #include "../proc/sysinfo.h"
#include "../proc/version.h" #include <proc/version.h>
#include "../proc/wchan.h" #include "../proc/wchan.h"
#include "../proc/uptime.h" #include <proc/uptime.h>
#include "top.h" #include "top.h"
#include "top_nls.h" #include "top_nls.h"
@ -251,25 +251,25 @@ static const char Graph_bars[] = "||||||||||||||||||||||||||||||||||||||||||||||
/* Support for the new library API -- acquired (if necessary) /* Support for the new library API -- acquired (if necessary)
at program startup and referenced throughout our lifetime */ at program startup and referenced throughout our lifetime */
static struct procps_meminfo *mem_info; static struct procps_meminfo *Mem_context;
static struct meminfo_result mem_chain[] = { static struct meminfo_result Mem_chain[] = {
{ PROCPS_MEM_FREE, 0, &mem_chain[1] }, { PROCPS_MEM_FREE, 0, &Mem_chain[1] },
{ PROCPS_MEM_USED, 0, &mem_chain[2] }, { PROCPS_MEM_USED, 0, &Mem_chain[2] },
{ PROCPS_MEM_TOTAL, 0, &mem_chain[3] }, { PROCPS_MEM_TOTAL, 0, &Mem_chain[3] },
{ PROCPS_MEM_CACHED, 0, &mem_chain[4] }, { PROCPS_MEM_CACHED, 0, &Mem_chain[4] },
{ PROCPS_MEM_BUFFERS, 0, &mem_chain[5] }, { PROCPS_MEM_BUFFERS, 0, &Mem_chain[5] },
{ PROCPS_MEM_AVAILABLE, 0, &mem_chain[6] }, { PROCPS_MEM_AVAILABLE, 0, &Mem_chain[6] },
{ PROCPS_SWAP_TOTAL, 0, &mem_chain[7] }, { PROCPS_SWAP_TOTAL, 0, &Mem_chain[7] },
{ PROCPS_SWAP_FREE, 0, &mem_chain[8] }, { PROCPS_SWAP_FREE, 0, &Mem_chain[8] },
{ PROCPS_SWAP_USED, 0, NULL } { PROCPS_SWAP_USED, 0, NULL }
}; };
enum mem_enums { enum mem_enums {
mem_FREE, mem_USED, mem_TOTAL, mem_CACHE, mem_BUFFS, mem_FREE, mem_USED, mem_TOTAL, mem_CACHE, mem_BUFFS,
mem_AVAIL, swp_TOTAL, swp_FREE, swp_USED mem_AVAIL, swp_TOTAL, swp_FREE, swp_USED
}; };
#define MEM_VAL(e) mem_chain[e].result #define MEM_VAL(e) Mem_chain[e].result
static struct procps_stat *sys_info; static struct procps_stat *Cpu_context;
static struct procps_jiffs_hist *Cpu_jiffs; static struct procps_jiffs_hist *Cpu_jiffs;
/*###### Sort callbacks ################################################*/ /*###### Sort callbacks ################################################*/
@ -578,8 +578,8 @@ static void bye_bye (const char *str) {
#endif // end: ATEOJ_RPTHSH #endif // end: ATEOJ_RPTHSH
#endif // end: OFF_HST_HASH #endif // end: OFF_HST_HASH
procps_stat_unref(&sys_info); procps_stat_unref(&Cpu_context);
procps_meminfo_unref(&mem_info); procps_meminfo_unref(&Mem_context);
#ifndef NUMA_DISABLE #ifndef NUMA_DISABLE
if (Libnuma_handle) dlclose(Libnuma_handle); if (Libnuma_handle) dlclose(Libnuma_handle);
#endif #endif
@ -2399,16 +2399,16 @@ static void cpus_refresh (void) {
Cpu_jiffs = alloc_c(totSLOT * sizeof(struct procps_jiffs_hist)); Cpu_jiffs = alloc_c(totSLOT * sizeof(struct procps_jiffs_hist));
} }
// first. snapshot the proc/stat cpu jiffs // 1st, snapshot the proc/stat cpu jiffs
if (procps_stat_read_jiffs(sys_info) < 0) if (procps_stat_read_jiffs(Cpu_context) < 0)
error_exit(N_txt(LIB_errorsys_txt)); error_exit(N_txt(LIB_errorcpu_txt));
// second, retrieve just the cpu summary jiffs // 2nd, retrieve just the cpu summary jiffs
if (procps_stat_get_jiffs_hist(sys_info, &Cpu_jiffs[sumSLOT], -1) < 0) if (procps_stat_get_jiffs_hist(Cpu_context, &Cpu_jiffs[sumSLOT], -1) < 0)
error_exit(N_txt(LIB_errorsys_txt)); error_exit(N_txt(LIB_errorcpu_txt));
// then retrieve all of the actual cpu jiffs // 3rd, retrieve all of the actual cpu jiffs
Cpu_faux_cnt = procps_stat_get_jiffs_hist_all(sys_info, Cpu_jiffs, sumSLOT); Cpu_faux_cnt = procps_stat_get_jiffs_hist_all(Cpu_context, Cpu_jiffs, sumSLOT);
if (Cpu_faux_cnt < 0) if (Cpu_faux_cnt < 0)
error_exit(N_txt(LIB_errorsys_txt)); error_exit(N_txt(LIB_errorcpu_txt));
#ifndef NUMA_DISABLE #ifndef NUMA_DISABLE
/* henceforth, with just a little more arithmetic we can avoid /* henceforth, with just a little more arithmetic we can avoid
@ -2669,9 +2669,10 @@ static void sysinfo_refresh (int forced) {
/*** hotplug_acclimated ***/ /*** hotplug_acclimated ***/
if (3 <= cur_secs - mem_secs) { if (3 <= cur_secs - mem_secs) {
if (procps_meminfo_read(mem_info) < 0) if ((procps_meminfo_read(Mem_context) < 0)
|| (procps_meminfo_get_chain(Mem_context, Mem_chain) < 0))
error_exit(N_txt(LIB_errormem_txt)); error_exit(N_txt(LIB_errormem_txt));
procps_meminfo_get_chain(mem_info, mem_chain); procps_meminfo_get_chain(Mem_context, Mem_chain);
mem_secs = cur_secs; mem_secs = cur_secs;
} }
#ifndef PRETEND8CPUS #ifndef PRETEND8CPUS
@ -3265,13 +3266,13 @@ static void before (char *me) {
// get virtual page stuff // get virtual page stuff
i = page_bytes; // from sysinfo.c, at lib init i = page_bytes; // from sysinfo.c, at lib init
while(i > 1024) { i >>= 1; Pg2K_shft++; } while (i > 1024) { i >>= 1; Pg2K_shft++; }
// prepare for new library API ... // prepare for new library API ...
if (procps_meminfo_new(&mem_info) < 0) if (procps_meminfo_new(&Mem_context) < 0)
error_exit(N_txt(LIB_errormem_txt)); error_exit(N_txt(LIB_errormem_txt));
if (procps_stat_new(&sys_info) < 0) if (procps_stat_new(&Cpu_context) < 0)
error_exit(N_txt(LIB_errorsys_txt)); error_exit(N_txt(LIB_errorcpu_txt));
#ifndef OFF_HST_HASH #ifndef OFF_HST_HASH
// prep for HST_t's put/get hashing optimizations // prep for HST_t's put/get hashing optimizations

View File

@ -470,8 +470,8 @@ static void build_norm_nlstab (void) {
. padding with extra spaces as necessary */ . padding with extra spaces as necessary */
Norm_nlstab[WORD_abv_mem_txt] = _("Mem "); Norm_nlstab[WORD_abv_mem_txt] = _("Mem ");
Norm_nlstab[WORD_abv_swp_txt] = _("Swap"); Norm_nlstab[WORD_abv_swp_txt] = _("Swap");
Norm_nlstab[LIB_errormem_txt] = _("library failed memory stats"); Norm_nlstab[LIB_errormem_txt] = _("library failed memory statistics");
Norm_nlstab[LIB_errorsys_txt] = _("library failed system stats"); Norm_nlstab[LIB_errorcpu_txt] = _("library failed cpu statistics");
} }

View File

@ -73,7 +73,7 @@ enum norm_nls {
FAIL_widepid_txt, FIND_no_find_fmt, FIND_no_next_txt, FOREST_modes_fmt, FAIL_widepid_txt, FIND_no_find_fmt, FIND_no_next_txt, FOREST_modes_fmt,
FOREST_views_txt, GET_find_str_txt, GET_max_task_fmt, GET_nice_num_fmt, FOREST_views_txt, GET_find_str_txt, GET_max_task_fmt, GET_nice_num_fmt,
GET_pid2kill_fmt, GET_pid2nice_fmt, GET_sigs_num_fmt, GET_user_ids_txt, GET_pid2kill_fmt, GET_pid2nice_fmt, GET_sigs_num_fmt, GET_user_ids_txt,
HELP_cmdline_fmt, IRIX_curmode_fmt, LIB_errormem_txt, LIB_errorsys_txt, HELP_cmdline_fmt, IRIX_curmode_fmt, LIB_errorcpu_txt, LIB_errormem_txt,
LIMIT_exceed_fmt, MISSING_args_fmt, NAME_windows_fmt, NOT_onsecure_txt, LIMIT_exceed_fmt, MISSING_args_fmt, NAME_windows_fmt, NOT_onsecure_txt,
NOT_smp_cpus_txt, NUMA_nodebad_txt, NUMA_nodeget_fmt, NUMA_nodenam_fmt, NOT_smp_cpus_txt, NUMA_nodebad_txt, NUMA_nodeget_fmt, NUMA_nodenam_fmt,
NUMA_nodenot_txt, OFF_one_word_txt, ON_word_only_txt, OSEL_casenot_txt, NUMA_nodenot_txt, OFF_one_word_txt, ON_word_only_txt, OSEL_casenot_txt,