1*cde9b937SSascha Wildner #ifndef _DIAG_ 2*cde9b937SSascha Wildner #define _DIAG_ 3*cde9b937SSascha Wildner /*- 4*cde9b937SSascha Wildner * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting 5*cde9b937SSascha Wildner * All rights reserved. 6*cde9b937SSascha Wildner * 7*cde9b937SSascha Wildner * Redistribution and use in source and binary forms, with or without 8*cde9b937SSascha Wildner * modification, are permitted provided that the following conditions 9*cde9b937SSascha Wildner * are met: 10*cde9b937SSascha Wildner * 1. Redistributions of source code must retain the above copyright 11*cde9b937SSascha Wildner * notice, this list of conditions and the following disclaimer, 12*cde9b937SSascha Wildner * without modification. 13*cde9b937SSascha Wildner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 14*cde9b937SSascha Wildner * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 15*cde9b937SSascha Wildner * redistribution must be conditioned upon including a substantially 16*cde9b937SSascha Wildner * similar Disclaimer requirement for further binary redistribution. 17*cde9b937SSascha Wildner * 18*cde9b937SSascha Wildner * NO WARRANTY 19*cde9b937SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20*cde9b937SSascha Wildner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21*cde9b937SSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 22*cde9b937SSascha Wildner * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 23*cde9b937SSascha Wildner * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 24*cde9b937SSascha Wildner * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25*cde9b937SSascha Wildner * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26*cde9b937SSascha Wildner * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 27*cde9b937SSascha Wildner * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28*cde9b937SSascha Wildner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 29*cde9b937SSascha Wildner * THE POSSIBILITY OF SUCH DAMAGES. 30*cde9b937SSascha Wildner * 31*cde9b937SSascha Wildner * $FreeBSD: src/tools/tools/ath/common/diag.h,v 1.1 2008/12/07 19:17:33 sam Exp $ 32*cde9b937SSascha Wildner */ 33*cde9b937SSascha Wildner #include <sys/types.h> 34*cde9b937SSascha Wildner #include <sys/file.h> 35*cde9b937SSascha Wildner #include <sys/ioctl.h> 36*cde9b937SSascha Wildner #include <sys/socket.h> 37*cde9b937SSascha Wildner #include <net/if.h> 38*cde9b937SSascha Wildner #include <stdio.h> 39*cde9b937SSascha Wildner 40*cde9b937SSascha Wildner #include <netproto/802_11/ieee80211_radiotap.h> 41*cde9b937SSascha Wildner #include "if_athioctl.h" 42*cde9b937SSascha Wildner 43*cde9b937SSascha Wildner struct statshandler { 44*cde9b937SSascha Wildner u_long interval; 45*cde9b937SSascha Wildner void *total; 46*cde9b937SSascha Wildner void *cur; 47*cde9b937SSascha Wildner 48*cde9b937SSascha Wildner void (*getstats)(struct statshandler *, void *); 49*cde9b937SSascha Wildner void (*update)(struct statshandler *); 50*cde9b937SSascha Wildner 51*cde9b937SSascha Wildner void (*printbanner)(struct statshandler *, FILE *); 52*cde9b937SSascha Wildner void (*reportdelta)(struct statshandler *, FILE *); 53*cde9b937SSascha Wildner void (*reporttotal)(struct statshandler *, FILE *); 54*cde9b937SSascha Wildner void (*reportverbose)(struct statshandler *, FILE *); 55*cde9b937SSascha Wildner }; 56*cde9b937SSascha Wildner 57*cde9b937SSascha Wildner extern void reportstats(FILE *fd, struct statshandler *sh); 58*cde9b937SSascha Wildner extern void runstats(FILE *fd, struct statshandler *sh); 59*cde9b937SSascha Wildner extern void reportcol(FILE *fd, u_int32_t v, const char *def_fmt, 60*cde9b937SSascha Wildner u_int32_t max, const char *alt_fmt); 61*cde9b937SSascha Wildner #endif /* _DIAG_ */ 62