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__ */
104