CodingStyle

This commit is contained in:
albert 2004-07-07 17:27:26 +00:00
parent e8b5f776a3
commit d8921adf71
2 changed files with 70 additions and 69 deletions

132
top.c
View File

@ -265,19 +265,18 @@ static int chin (int ech, char *buf, unsigned cnt)
rc = read(STDIN_FILENO, buf, cnt); rc = read(STDIN_FILENO, buf, cnt);
tcsetattr(STDIN_FILENO, TCSAFLUSH, &Rawtty); tcsetattr(STDIN_FILENO, TCSAFLUSH, &Rawtty);
} }
/* may be the beginning of a lengthy escape sequence */ // may be the beginning of a lengthy escape sequence
tcflush(STDIN_FILENO, TCIFLUSH); tcflush(STDIN_FILENO, TCIFLUSH);
return rc; /* note: we do NOT produce a vaid 'string' */ return rc; // note: we do NOT produce a vaid 'string'
} }
/* // This routine simply formats whatever the caller wants and
* This routine simply formats whatever the caller wants and // returns a pointer to the resulting 'const char' string...
* returns a pointer to the resulting 'const char' string... */
static const char *fmtmk (const char *fmts, ...) static const char *fmtmk (const char *fmts, ...)
{ {
static char buf[BIGBUFSIZ]; /* with help stuff, our buffer */ static char buf[BIGBUFSIZ]; // with help stuff, our buffer
va_list va; /* requirements exceed 1k */ va_list va; // requirements exceed 1k
va_start(va, fmts); va_start(va, fmts);
vsnprintf(buf, sizeof(buf), fmts, va); vsnprintf(buf, sizeof(buf), fmts, va);
@ -286,9 +285,8 @@ static const char *fmtmk (const char *fmts, ...)
} }
/* // This guy is just our way of avoiding the overhead of the standard
* This guy is just our way of avoiding the overhead of the standard // strcat function (should the caller choose to participate)
* strcat function (should the caller choose to participate) */
static inline char *scat (char *restrict dst, const char *restrict src) static inline char *scat (char *restrict dst, const char *restrict src)
{ {
while (*dst) dst++; while (*dst) dst++;
@ -309,10 +307,9 @@ static char *strim_0 (char *str)
} }
/* // This guy just facilitates Batch and protects against dumb ttys
* This guy just facilitates Batch and protects against dumb ttys // -- we'd 'inline' him but he's only called twice per frame,
* -- we'd 'inline' him but he's only called twice per frame, // yet used in many other locations.
* yet used in many other locations. */
static const char *tg2 (int x, int y) static const char *tg2 (int x, int y)
{ {
return Cap_can_goto ? tgoto(cursor_address, x, y) : ""; return Cap_can_goto ? tgoto(cursor_address, x, y) : "";
@ -321,9 +318,7 @@ static const char *tg2 (int x, int y)
/*###### Exit/Interrput routines #######################################*/ /*###### Exit/Interrput routines #######################################*/
/* // The usual program end -- called only by functions in this section.
* The usual program end --
* called only by functions in this section. */
static void bye_bye (int eno, const char *str) NORETURN; static void bye_bye (int eno, const char *str) NORETURN;
static void bye_bye (int eno, const char *str) static void bye_bye (int eno, const char *str)
{ {
@ -335,18 +330,10 @@ static void bye_bye (int eno, const char *str)
putp("\n"); putp("\n");
fflush(stdout); fflush(stdout);
#define ATEOJ_REPORT
#ifdef ATEOJ_REPORT #ifdef ATEOJ_REPORT
fprintf(stderr, "\n Screen_cols %d\n", Screen_cols);
fprintf(stderr, fprintf(stderr,
"\nbye_bye's Summary report:"
"\n\tProgram"
"\n\t Linux version = %u.%u.%u, %s"
"\n\t Hertz = %u (%u bytes, %u-bit time)"
"\n\t Page_size = %d, Cpu_tot = %d, sizeof(proc_t) = %u"
"\n\t sizeof(CPU_t) = %u, sizeof(HST_t) = %u (%u HST_t's/Page)"
"\n\t Crufty? %s"
"\n\tTerminal: %s" "\n\tTerminal: %s"
"\n\t device = %s, ncurses = v%s" "\n\t device = %s, ncurses = v%s"
"\n\t max_colors = %d, max_pairs = %d" "\n\t max_colors = %d, max_pairs = %d"
@ -354,13 +341,6 @@ static void bye_bye (int eno, const char *str)
"\n\t Screen_cols = %d, Screen_rows = %d" "\n\t Screen_cols = %d, Screen_rows = %d"
"\n\t Max_lines = %d, most recent Pseudo_size = %d" "\n\t Max_lines = %d, most recent Pseudo_size = %d"
"\n" "\n"
, LINUX_VERSION_MAJOR(linux_version_code)
, LINUX_VERSION_MINOR(linux_version_code)
, LINUX_VERSION_PATCH(linux_version_code)
, procps_version
, (unsigned)Hertz, sizeof(Hertz), sizeof(Hertz) * 8
, Page_size, Cpu_tot, sizeof(proc_t)
, sizeof(CPU_t), sizeof(HST_t), Page_size / sizeof(HST_t)
#ifdef PRETENDNOCAP #ifdef PRETENDNOCAP
, "dumb" , "dumb"
#else #else
@ -373,7 +353,6 @@ static void bye_bye (int eno, const char *str)
, Max_lines, Pseudo_size , Max_lines, Pseudo_size
); );
fprintf(stderr, fprintf(stderr,
#ifndef STDOUT_IOLBF #ifndef STDOUT_IOLBF
"\n\t Stdout_buf = %d, BUFSIZ = %u" "\n\t Stdout_buf = %d, BUFSIZ = %u"
@ -397,6 +376,22 @@ static void bye_bye (int eno, const char *str)
, Curwin->rc.sortindx , Curwin->rc.sortindx
); );
fprintf(stderr,
"\n\tProgram"
"\n\t Linux version = %u.%u.%u, %s"
"\n\t Hertz = %u (%u bytes, %u-bit time)"
"\n\t Page_size = %d, Cpu_tot = %d, sizeof(proc_t) = %u"
"\n\t sizeof(CPU_t) = %u, sizeof(HST_t) = %u (%u HST_t's/Page)"
"\n"
, LINUX_VERSION_MAJOR(linux_version_code)
, LINUX_VERSION_MINOR(linux_version_code)
, LINUX_VERSION_PATCH(linux_version_code)
, procps_version
, (unsigned)Hertz, sizeof(Hertz), sizeof(Hertz) * 8
, Page_size, Cpu_tot, sizeof(proc_t)
, sizeof(CPU_t), sizeof(HST_t), Page_size / sizeof(HST_t)
);
#endif #endif
@ -547,12 +542,10 @@ static void capsmk (WIN_t *q)
} }
/* // Show an error, but not right now.
* Show an error, but not right now. // Due to the postponed opening of ksym, using open_psdb_message,
* Due to the postponed opening of ksym, using open_psdb_message, // if P_WCH had been selected and the program is restarted, the
* if P_WCH had been selected and the program is restarted, the // message would otherwise be displayed prematurely.
* message would otherwise be displayed prematurely.
* (old top handles that situation with typical inelegance) */
static void msg_save (const char *fmts, ...) static void msg_save (const char *fmts, ...)
{ {
char tmp[SMLBUFSIZ]; char tmp[SMLBUFSIZ];
@ -2033,17 +2026,17 @@ static void reframewins (void)
s = scat(s, h); s = scat(s, h);
} }
/* establish the final maxpflgs and prepare to grow the command column // establish the final maxpflgs and prepare to grow the command column
heading via maxcmdln - it may be a fib if P_CMD wasn't encountered, // heading via maxcmdln - it may be a fib if P_CMD wasn't encountered,
but that's ok because it won't be displayed anyway */ // but that's ok because it won't be displayed anyway
w->maxpflgs = i; w->maxpflgs = i;
w->maxcmdln = Screen_cols w->maxcmdln = Screen_cols
- (strlen(w->columnhdr) - strlen(Fieldstab[P_CMD].head)) - 1; - (strlen(w->columnhdr) - strlen(Fieldstab[P_CMD].head)) - 1;
/* finally, we can build the true run-time columns header, format the // finally, we can build the true run-time columns header, format the
command column heading, if P_CMD is really being displayed, and // command column heading, if P_CMD is really being displayed, and
rebuild the all-important PROC_FILLxxx flags that will be used // rebuild the all-important PROC_FILLxxx flags that will be used
until/if we're we're called again */ // until/if we're we're called again
*(s = w->columnhdr) = '\0'; *(s = w->columnhdr) = '\0';
if (Rc.mode_altscr) s = scat(s, fmtmk("%d", w->winnum)); if (Rc.mode_altscr) s = scat(s, fmtmk("%d", w->winnum));
for (i = 0; i < w->maxpflgs; i++) { for (i = 0; i < w->maxpflgs; i++) {
@ -2889,23 +2882,28 @@ static proc_t **summary_show (void)
} }
#define PAGES_2K(n) (unsigned)( (n) << page_to_kb_shift ) #define PAGES_TO_KB(n) (unsigned)( (n) << page_to_kb_shift )
// the following macro is our means to 'inline' emitting a column -- next to
// procs_refresh, that's the most frequent and costly part of top's job !
#define MKCOL(va...) do { \
if(likely(!( CHKw(q, Show_HICOLS) && q->rc.sortindx==i ))) { \
snprintf(cbuf, sizeof(cbuf), f, ## va); \
} else { \
snprintf(_z, sizeof(_z), f, ## va); \
snprintf(cbuf, sizeof(cbuf), "%s%s%s", \
q->capclr_rowhigh, \
_z, \
!(CHKw(q, Show_HIROWS) && 'R' == p->state) ? q->capclr_rownorm : "" \
); \
pad += q->len_rowhigh; \
if (!(CHKw(q, Show_HIROWS) && 'R' == p->state)) pad += q->len_rownorm; \
} \
} while (0)
// Display information for a single task row. // Display information for a single task row.
static void task_show (const WIN_t *q, const proc_t *p) static void task_show (const WIN_t *q, const proc_t *p)
{ {
// the following macro is our means to 'inline' emitting a column -- next to
// procs_refresh, that's the most frequent and costly part of top's job !
#define MKCOL(va...) do { \
if (likely(!(CHKw(q, Show_HICOLS) && q->rc.sortindx == i))) \
snprintf(cbuf, sizeof(cbuf), f, ## va); \
else { \
snprintf(_z, sizeof(_z), f, ## va); \
snprintf(cbuf, sizeof(cbuf), "%s%s%s", q->capclr_rowhigh, _z \
, !(CHKw(q, Show_HIROWS) && 'R' == p->state) ? q->capclr_rownorm : ""); \
pad += q->len_rowhigh; \
if (!(CHKw(q, Show_HIROWS) && 'R' == p->state)) pad += q->len_rownorm; \
} } while (0)
char rbuf[ROWBUFSIZ], *rp; char rbuf[ROWBUFSIZ], *rp;
int j, x, pad; int j, x, pad;
@ -2931,7 +2929,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
} }
break; break;
case P_COD: case P_COD:
MKCOL(scale_num(PAGES_2K(p->trs), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->trs), w, s));
break; break;
case P_CPN: case P_CPN:
MKCOL((unsigned)p->processor); MKCOL((unsigned)p->processor);
@ -2943,7 +2941,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
} }
break; break;
case P_DAT: case P_DAT:
MKCOL(scale_num(PAGES_2K(p->drs), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->drs), w, s));
break; break;
case P_DRT: case P_DRT:
MKCOL(scale_num((unsigned)p->dt, w, s)); MKCOL(scale_num((unsigned)p->dt, w, s));
@ -2963,7 +2961,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
MKCOL(p->egroup); MKCOL(p->egroup);
break; break;
case P_MEM: case P_MEM:
MKCOL((float)PAGES_2K(p->resident) * 100 / kb_main_total); MKCOL((float)PAGES_TO_KB(p->resident) * 100 / kb_main_total);
break; break;
case P_NCE: case P_NCE:
MKCOL((int)p->nice); MKCOL((int)p->nice);
@ -2982,10 +2980,10 @@ static void task_show (const WIN_t *q, const proc_t *p)
MKCOL((int)p->priority); MKCOL((int)p->priority);
break; break;
case P_RES: case P_RES:
MKCOL(scale_num(PAGES_2K(p->resident), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->resident), w, s));
break; break;
case P_SHR: case P_SHR:
MKCOL(scale_num(PAGES_2K(p->share), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->share), w, s));
break; break;
case P_STA: case P_STA:
#ifdef USE_LIB_STA3 #ifdef USE_LIB_STA3
@ -2995,7 +2993,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
#endif #endif
break; break;
case P_SWP: case P_SWP:
MKCOL(scale_num(PAGES_2K(p->size - p->resident), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->size - p->resident), w, s));
break; break;
case P_TME: case P_TME:
case P_TM2: case P_TM2:
@ -3021,7 +3019,7 @@ static void task_show (const WIN_t *q, const proc_t *p)
MKCOL(p->ruser); MKCOL(p->ruser);
break; break;
case P_VRT: case P_VRT:
MKCOL(scale_num(PAGES_2K(p->size), w, s)); MKCOL(scale_num(PAGES_TO_KB(p->size), w, s));
break; break;
case P_WCH: case P_WCH:
if (No_ksyms) { if (No_ksyms) {

7
top.h
View File

@ -279,8 +279,11 @@ enum pflag {
#define FLGSOFF_cwo EQUWINS_cwo | NEWFRAM_cwo #define FLGSOFF_cwo EQUWINS_cwo | NEWFRAM_cwo
// Default flags if there's no rcfile to provide user customizations // Default flags if there's no rcfile to provide user customizations
#define DEF_WINFLGS ( View_LOADAV | View_STATES | View_CPUSUM | View_MEMORY | \ #define DEF_WINFLGS ( \
Show_HIBOLD | Show_HIROWS | Show_IDLEPS | Qsrt_NORMAL | VISIBLE_tsk ) View_LOADAV | View_STATES | View_CPUSUM | View_MEMORY | View_NOBOLD | \
Show_HIBOLD | Show_HIROWS | Show_IDLEPS | Qsrt_NORMAL | \
VISIBLE_tsk \
)
// Used to test/manipulate the window flags // Used to test/manipulate the window flags
#define CHKw(q,f) (int)((q)->rc.winflags & (f)) #define CHKw(q,f) (int)((q)->rc.winflags & (f))