⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diag.c

📁 Atheros wifi driver source code
💻 C
字号:
/* * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting * Copyright (c) 2002-2005 Atheros Communications, Inc. * All rights reserved. * * $Id: diag.c,v 1.1.1.1 2006/09/12 03:45:22 steven Exp $ */#include "diag.h"#include <signal.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <err.h>int	signalled;static voidcatchalarm(int signo){	signalled = 1;}voidreportstats(FILE *fd, struct statshandler *sh){	sh->getstats(sh, sh->total);	sh->reportverbose(sh, fd);}voidrunstats(FILE *fd, struct statshandler *sh){	u_long off;	int line, omask;	if (sh->interval < 1)		sh->interval = 1;	signal(SIGALRM, catchalarm);	signalled = 0;	alarm(sh->interval);banner:	sh->printbanner(sh, fd);	fflush(fd);	line = 0;loop:	if (line != 0) {		sh->getstats(sh, sh->cur);		sh->reportdelta(sh, fd);		sh->update(sh);	} else {		sh->getstats(sh, sh->total);		sh->reporttotal(sh, fd);	}	putc('\n', fd);	fflush(fd);	omask = sigblock(sigmask(SIGALRM));	if (!signalled)		sigpause(0);	sigsetmask(omask);	signalled = 0;	alarm(sh->interval);	line++;	if (line == 21)		/* XXX tty line count */		goto banner;	else		goto loop;	/*NOTREACHED*/}voidreportcol(FILE *fd, u_int32_t v, const char *def_fmt,	u_int32_t max, const char *alt_fmt){	if (v < max)		fprintf(fd, def_fmt, v);	else {		char unit = 'K';		v /= 1024;		max /= 10;		if (v > max) { 			v /= 1024, unit = 'M';			if (v > max)				v /= 1024, unit = 'G';		}		fprintf(fd, alt_fmt, v, unit);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -