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
35typedef 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
77typedef struct {
78	unsigned long	panel;
79	unsigned long	type;
80	unsigned long	hwid;
81	unsigned long	nrports;
82} companel_t;
83
84typedef 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