- waitnl(w);
- (void) wwputs("\033E", w); /* clear and home cursor */
- }
-}
-
-#ifndef O_4_1A
-char *strtime();
-
-c_time(flag)
-{
- register struct ww *w;
- struct rusage rusage;
- struct timeval timeval;
- struct timezone timezone;
-
- if ((w = openiwin(6, "Timing and Resource Usage")) == 0) {
- error("Can't open time window: %s.", wwerror());
- return;
- }
-
- (void) gettimeofday(&timeval, &timezone);
- timeval.tv_sec -= starttime.tv_sec;
- if ((timeval.tv_usec -= starttime.tv_usec) < 0) {
- timeval.tv_sec--;
- timeval.tv_usec += 1000000;
- }
- (void) getrusage(flag, &rusage);
-
- (void) wwprintf(w, "time\t\tutime\t\tstime\t\tmaxrss\tixrss\tidrss\tisrss\n");
- (void) wwprintf(w, "%-16s", strtime(&timeval));
- (void) wwprintf(w, "%-16s", strtime(&rusage.ru_utime));
- (void) wwprintf(w, "%-16s", strtime(&rusage.ru_stime));
- (void) wwprintf(w, "%D\t%D\t%D\t%D\n",
- rusage.ru_maxrss, rusage.ru_ixrss,
- rusage.ru_idrss, rusage.ru_isrss);
- (void) wwprintf(w, "minflt\tmajflt\tnswap\tinblk\toublk\tmsgsnd\tmsgrcv\tnsigs\tnvcsw\tnivcsw\n");
- (void) wwprintf(w, "%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\t%D\n",
- rusage.ru_minflt, rusage.ru_majflt, rusage.ru_nswap,
- rusage.ru_inblock, rusage.ru_oublock,
- rusage.ru_msgsnd, rusage.ru_msgrcv, rusage.ru_nsignals,
- rusage.ru_nvcsw, rusage.ru_nivcsw);
-
- waitnl(w);
- closeiwin(w);
-}
-
-char *
-strtime(t)
-register struct timeval *t;
-{
- char fill = 0;
- static char buf[20];
- register char *p = buf;
-
- if (t->tv_sec > 60*60) {
- (void) sprintf(p, "%D:", t->tv_sec / (60*60));
- while (*p++)
- ;
- p--;
- t->tv_sec %= 60*60;
- fill++;
- }
- if (t->tv_sec > 60) {
- (void) sprintf(p, fill ? "%02D:" : "%D:", t->tv_sec / 60);
- while (*p++)
- ;
- p--;
- t->tv_sec %= 60;
- fill++;
- }
- (void) sprintf(p, fill ? "%02D.%02d" : "%D.%02D",
- t->tv_sec, t->tv_usec / 10000);
- return buf;
-}
-#endif
-
-c_stat()
-{
- register struct ww *w;
-
- if ((w = openiwin(6, "IO Statics")) == 0) {
- error("Can't open statistics window: %s.", wwerror());
- return;
- }
- (void) wwprintf(w, "nread\tnreadz\tnreade\tnreadc\tnwrite\tnwritec\n");
- (void) wwprintf(w, "%d\t%d\t%d\t%d\t%d\t%d\n",
- nread, nreadz, nreade, nreadc, wwnwrite, wwnwritec);
- (void) wwprintf(w, "nupdate\tnupdlin\tnupdmis\tnmajlin\tnmajmis\n");
- (void) wwprintf(w, "%d\t%d\t%d\t%d\t%d\n",
- wwnupdate, wwnupdline, wwnupdmiss, wwnmajline, wwnmajmiss);
- waitnl(w);
- closeiwin(w);
-}
-
-c_list()
-{
- register struct ww *w, *wp;
- register i;
- int n;
-
- for (n = 0, i = 0; i < NWINDOW; i++)
- if (window[i] != 0)
- n++;
- if (n == 0) {
- error("No windows.");
- return;
- }
- if ((w = openiwin(n + 2, "Windows")) == 0) {
- error("Can't open listing window: %s.", wwerror());
- return;
- }
- for (i = 0; i < NWINDOW; i++) {
- if ((wp = window[i]) == 0)
- continue;
- (void) wwprintf(w, "%c %c %-13s %-.*s\n",
- wp == selwin ? '*' : ' ',
- i + '1',
- wp->ww_state == WWS_HASPROC
- ? "" : "(No process)",
- wwncol - 20,
- wp->ww_label
- ? wp->ww_label : "(No label)");
- }
- waitnl(w);
- closeiwin(w);