Merge git://git.kernel.org/pub/scm/virt/kvm/kvm
[firefly-linux-kernel-4.4.55.git] / include / linux / comstats.h
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