xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/n_r3964.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* r3964 linediscipline for linux
2*53ee8cc1Swenshuai.xi  *
3*53ee8cc1Swenshuai.xi  * -----------------------------------------------------------
4*53ee8cc1Swenshuai.xi  * Copyright by
5*53ee8cc1Swenshuai.xi  * Philips Automation Projects
6*53ee8cc1Swenshuai.xi  * Kassel (Germany)
7*53ee8cc1Swenshuai.xi  * http://www.pap-philips.de
8*53ee8cc1Swenshuai.xi  * -----------------------------------------------------------
9*53ee8cc1Swenshuai.xi  * This software may be used and distributed according to the terms of
10*53ee8cc1Swenshuai.xi  * the GNU General Public License, incorporated herein by reference.
11*53ee8cc1Swenshuai.xi  *
12*53ee8cc1Swenshuai.xi  * Author:
13*53ee8cc1Swenshuai.xi  * L. Haag
14*53ee8cc1Swenshuai.xi  *
15*53ee8cc1Swenshuai.xi  * $Log: r3964.h,v $
16*53ee8cc1Swenshuai.xi  * Revision 1.4  2005/12/21 19:54:24  Kurt Huwig <kurt huwig de>
17*53ee8cc1Swenshuai.xi  * Fixed HZ usage on 2.6 kernels
18*53ee8cc1Swenshuai.xi  * Removed unnecessary include
19*53ee8cc1Swenshuai.xi  *
20*53ee8cc1Swenshuai.xi  * Revision 1.3  2001/03/18 13:02:24  dwmw2
21*53ee8cc1Swenshuai.xi  * Fix timer usage, use spinlocks properly.
22*53ee8cc1Swenshuai.xi  *
23*53ee8cc1Swenshuai.xi  * Revision 1.2  2001/03/18 12:53:15  dwmw2
24*53ee8cc1Swenshuai.xi  * Merge changes in 2.4.2
25*53ee8cc1Swenshuai.xi  *
26*53ee8cc1Swenshuai.xi  * Revision 1.1.1.1  1998/10/13 16:43:14  dwmw2
27*53ee8cc1Swenshuai.xi  * This'll screw the version control
28*53ee8cc1Swenshuai.xi  *
29*53ee8cc1Swenshuai.xi  * Revision 1.6  1998/09/30 00:40:38  dwmw2
30*53ee8cc1Swenshuai.xi  * Updated to use kernel's N_R3964 if available
31*53ee8cc1Swenshuai.xi  *
32*53ee8cc1Swenshuai.xi  * Revision 1.4  1998/04/02 20:29:44  lhaag
33*53ee8cc1Swenshuai.xi  * select, blocking, ...
34*53ee8cc1Swenshuai.xi  *
35*53ee8cc1Swenshuai.xi  * Revision 1.3  1998/02/12 18:58:43  root
36*53ee8cc1Swenshuai.xi  * fixed some memory leaks
37*53ee8cc1Swenshuai.xi  * calculation of checksum characters
38*53ee8cc1Swenshuai.xi  *
39*53ee8cc1Swenshuai.xi  * Revision 1.2  1998/02/07 13:03:17  root
40*53ee8cc1Swenshuai.xi  * ioctl read_telegram
41*53ee8cc1Swenshuai.xi  *
42*53ee8cc1Swenshuai.xi  * Revision 1.1  1998/02/06 19:19:43  root
43*53ee8cc1Swenshuai.xi  * Initial revision
44*53ee8cc1Swenshuai.xi  *
45*53ee8cc1Swenshuai.xi  *
46*53ee8cc1Swenshuai.xi  */
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi #ifndef __LINUX_N_R3964_H__
49*53ee8cc1Swenshuai.xi #define __LINUX_N_R3964_H__
50*53ee8cc1Swenshuai.xi 
51*53ee8cc1Swenshuai.xi /* line disciplines for r3964 protocol */
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi 
54*53ee8cc1Swenshuai.xi /*
55*53ee8cc1Swenshuai.xi  * Ioctl-commands
56*53ee8cc1Swenshuai.xi  */
57*53ee8cc1Swenshuai.xi 
58*53ee8cc1Swenshuai.xi #define R3964_ENABLE_SIGNALS      0x5301
59*53ee8cc1Swenshuai.xi #define R3964_SETPRIORITY         0x5302
60*53ee8cc1Swenshuai.xi #define R3964_USE_BCC             0x5303
61*53ee8cc1Swenshuai.xi #define R3964_READ_TELEGRAM       0x5304
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi /* Options for R3964_SETPRIORITY */
64*53ee8cc1Swenshuai.xi #define R3964_MASTER   0
65*53ee8cc1Swenshuai.xi #define R3964_SLAVE    1
66*53ee8cc1Swenshuai.xi 
67*53ee8cc1Swenshuai.xi /* Options for R3964_ENABLE_SIGNALS */
68*53ee8cc1Swenshuai.xi #define R3964_SIG_ACK   0x0001
69*53ee8cc1Swenshuai.xi #define R3964_SIG_DATA  0x0002
70*53ee8cc1Swenshuai.xi #define R3964_SIG_ALL   0x000f
71*53ee8cc1Swenshuai.xi #define R3964_SIG_NONE  0x0000
72*53ee8cc1Swenshuai.xi #define R3964_USE_SIGIO 0x1000
73*53ee8cc1Swenshuai.xi 
74*53ee8cc1Swenshuai.xi /*
75*53ee8cc1Swenshuai.xi  * r3964 operation states:
76*53ee8cc1Swenshuai.xi  */
77*53ee8cc1Swenshuai.xi 
78*53ee8cc1Swenshuai.xi /* types for msg_id: */
79*53ee8cc1Swenshuai.xi enum {R3964_MSG_ACK=1, R3964_MSG_DATA };
80*53ee8cc1Swenshuai.xi 
81*53ee8cc1Swenshuai.xi #define R3964_MAX_MSG_COUNT 32
82*53ee8cc1Swenshuai.xi 
83*53ee8cc1Swenshuai.xi /* error codes for client messages */
84*53ee8cc1Swenshuai.xi #define R3964_OK 0        /* no error. */
85*53ee8cc1Swenshuai.xi #define R3964_TX_FAIL -1  /* transmission error, block NOT sent */
86*53ee8cc1Swenshuai.xi #define R3964_OVERFLOW -2 /* msg queue overflow */
87*53ee8cc1Swenshuai.xi 
88*53ee8cc1Swenshuai.xi /* the client gets this struct when calling read(fd,...): */
89*53ee8cc1Swenshuai.xi struct r3964_client_message {
90*53ee8cc1Swenshuai.xi 	  int     msg_id;
91*53ee8cc1Swenshuai.xi 	  int     arg;
92*53ee8cc1Swenshuai.xi 	  int     error_code;
93*53ee8cc1Swenshuai.xi };
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi #define R3964_MTU      256
96*53ee8cc1Swenshuai.xi 
97*53ee8cc1Swenshuai.xi 
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi #endif
100