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