ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / char / rio / rioioctl.h
1 /*
2 ** -----------------------------------------------------------------------------
3 **
4 **  Perle Specialix driver for Linux
5 **  Ported from existing RIO Driver for SCO sources.
6  *
7  *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
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 **      Module          : rioioctl.h
24 **      SID             : 1.2
25 **      Last Modified   : 11/6/98 11:34:13
26 **      Retrieved       : 11/6/98 11:34:22
27 **
28 **  ident @(#)rioioctl.h        1.2
29 **
30 ** -----------------------------------------------------------------------------
31 */
32
33 #ifndef __rioioctl_h__
34 #define __rioioctl_h__
35
36 #ifdef SCCS_LABELS
37 static char *_rioioctl_h_sccs_ = "@(#)rioioctl.h        1.2";
38 #endif
39
40 /*
41 ** RIO device driver - user ioctls and associated structures.
42 */
43
44 struct portStats {
45         int     port;
46         int     gather;
47         ulong   txchars;
48         ulong   rxchars;
49         ulong   opens;
50         ulong   closes;
51         ulong   ioctls;
52 }; 
53
54
55 #define rIOC    ('r'<<8)
56 #define TCRIOSTATE      (rIOC | 1)
57 #define TCRIOXPON       (rIOC | 2)
58 #define TCRIOXPOFF      (rIOC | 3)
59 #define TCRIOXPCPS      (rIOC | 4)
60 #define TCRIOXPRINT     (rIOC | 5)
61 #define TCRIOIXANYON    (rIOC | 6)
62 #define TCRIOIXANYOFF   (rIOC | 7)
63 #define TCRIOIXONON     (rIOC | 8)
64 #define TCRIOIXONOFF    (rIOC | 9)
65 #define TCRIOMBIS       (rIOC | 10)
66 #define TCRIOMBIC       (rIOC | 11)
67 #define TCRIOTRIAD      (rIOC | 12)
68 #define TCRIOTSTATE     (rIOC | 13)
69
70 /*
71 ** 15.10.1998 ARG - ESIL 0761 part fix
72 ** Add RIO ioctls for manipulating RTS and CTS flow control, (as LynxOS
73 ** appears to not support hardware flow control).
74 */
75 #define TCRIOCTSFLOWEN  (rIOC | 14)     /* enable CTS flow control */
76 #define TCRIOCTSFLOWDIS (rIOC | 15)     /* disable CTS flow control */
77 #define TCRIORTSFLOWEN  (rIOC | 16)     /* enable RTS flow control */
78 #define TCRIORTSFLOWDIS (rIOC | 17)     /* disable RTS flow control */
79
80 /*
81 ** 09.12.1998 ARG - ESIL 0776 part fix
82 ** Definition for 'RIOC' also appears in daemon.h, so we'd better do a
83 ** #ifndef here first.
84 ** 'RIO_QUICK_CHECK' also #define'd here as this ioctl is now
85 ** allowed to be used by customers.
86 **
87 ** 05.02.1999 ARG -
88 ** This is what I've decied to do with ioctls etc., which are intended to be
89 ** invoked from users applications :
90 ** Anything that needs to be defined here will be removed from daemon.h, that
91 ** way it won't end up having to be defined/maintained in two places. The only
92 ** consequence of this is that this file should now be #include'd by daemon.h
93 **
94 ** 'stats' ioctls now #define'd here as they are to be used by customers.
95 */
96 #define RIOC    ('R'<<8)|('i'<<16)|('o'<<24)
97
98 #define RIO_QUICK_CHECK         (RIOC | 105)
99 #define RIO_GATHER_PORT_STATS   (RIOC | 193)
100 #define RIO_RESET_PORT_STATS    (RIOC | 194)
101 #define RIO_GET_PORT_STATS      (RIOC | 195)
102
103 #endif  /* __rioioctl_h__ */