Home | History | Annotate | Download | only in linux
      1 /*****************************************************************************/
      2 
      3 /*
      4  *	comstats.h  -- Serial Port Stats.
      5  *
      6  *	Copyright (C) 1996-1998  Stallion Technologies
      7  *	Copyright (C) 1994-1996  Greg Ungerer.
      8  *
      9  *	This program is free software; you can redistribute it and/or modify
     10  *	it under the terms of the GNU General Public License as published by
     11  *	the Free Software Foundation; either version 2 of the License, or
     12  *	(at your option) any later version.
     13  *
     14  *	This program is distributed in the hope that it will be useful,
     15  *	but WITHOUT ANY WARRANTY; without even the implied warranty of
     16  *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17  *	GNU General Public License for more details.
     18  *
     19  *	You should have received a copy of the GNU General Public License
     20  *	along with this program; if not, write to the Free Software
     21  *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
     22  */
     23 
     24 /*****************************************************************************/
     25 #ifndef	_COMSTATS_H
     26 #define	_COMSTATS_H
     27 /*****************************************************************************/
     28 
     29 /*
     30  *	Serial port stats structure. The structure itself is UART
     31  *	independent, but some fields may be UART/driver specific (for
     32  *	example state).
     33  */
     34 
     35 typedef struct {
     36 	unsigned long	brd;
     37 	unsigned long	panel;
     38 	unsigned long	port;
     39 	unsigned long	hwid;
     40 	unsigned long	type;
     41 	unsigned long	txtotal;
     42 	unsigned long	rxtotal;
     43 	unsigned long	txbuffered;
     44 	unsigned long	rxbuffered;
     45 	unsigned long	rxoverrun;
     46 	unsigned long	rxparity;
     47 	unsigned long	rxframing;
     48 	unsigned long	rxlost;
     49 	unsigned long	txbreaks;
     50 	unsigned long	rxbreaks;
     51 	unsigned long	txxon;
     52 	unsigned long	txxoff;
     53 	unsigned long	rxxon;
     54 	unsigned long	rxxoff;
     55 	unsigned long	txctson;
     56 	unsigned long	txctsoff;
     57 	unsigned long	rxrtson;
     58 	unsigned long	rxrtsoff;
     59 	unsigned long	modem;
     60 	unsigned long	state;
     61 	unsigned long	flags;
     62 	unsigned long	ttystate;
     63 	unsigned long	cflags;
     64 	unsigned long	iflags;
     65 	unsigned long	oflags;
     66 	unsigned long	lflags;
     67 	unsigned long	signals;
     68 } comstats_t;
     69 
     70 
     71 /*
     72  *	Board stats structure. Returns useful info about the board.
     73  */
     74 
     75 #define	COM_MAXPANELS	8
     76 
     77 typedef struct {
     78 	unsigned long	panel;
     79 	unsigned long	type;
     80 	unsigned long	hwid;
     81 	unsigned long	nrports;
     82 } companel_t;
     83 
     84 typedef struct {
     85 	unsigned long	brd;
     86 	unsigned long	type;
     87 	unsigned long	hwid;
     88 	unsigned long	state;
     89 	unsigned long	ioaddr;
     90 	unsigned long	ioaddr2;
     91 	unsigned long	memaddr;
     92 	unsigned long	irq;
     93 	unsigned long	nrpanels;
     94 	unsigned long	nrports;
     95 	companel_t	panels[COM_MAXPANELS];
     96 } combrd_t;
     97 
     98 
     99 /*
    100  *	Define the ioctl operations for stats stuff.
    101  */
    102 #include <linux/ioctl.h>
    103 
    104 #define	COM_GETPORTSTATS	_IO('c',30)
    105 #define	COM_CLRPORTSTATS	_IO('c',31)
    106 #define	COM_GETBRDSTATS		_IO('c',32)
    107 
    108 
    109 /*
    110  *	Define the set of ioctls that give user level access to the
    111  *	private port, panel and board structures. The argument required
    112  *	will be driver dependent!
    113  */
    114 #define	COM_READPORT		_IO('c',40)
    115 #define	COM_READBOARD		_IO('c',41)
    116 #define	COM_READPANEL		_IO('c',42)
    117 
    118 /*****************************************************************************/
    119 #endif
    120