tty: fix BKL related leak and crash
[linux-2.6] / drivers / char / rocket.h
1 /*
2  * rocket.h --- the exported interface of the rocket driver to its configuration program.
3  *
4  * Written by Theodore Ts'o, Copyright 1997.
5  * Copyright 1997 Comtrol Corporation. 
6  *
7  */
8
9 /*  Model Information Struct */
10 typedef struct {
11         unsigned long model;
12         char modelString[80];
13         unsigned long numPorts;
14         int loadrm2;
15         int startingPortNumber;
16 } rocketModel_t;
17
18 struct rocket_config {
19         int line;
20         int flags;
21         int closing_wait;
22         int close_delay;
23         int port;
24         int reserved[32];
25 };
26
27 struct rocket_ports {
28         int tty_major;
29         int callout_major;
30         rocketModel_t rocketModel[8];
31 };
32
33 struct rocket_version {
34         char rocket_version[32];
35         char rocket_date[32];
36         char reserved[64];
37 };
38
39 /*
40  * Rocketport flags
41  */
42 #define ROCKET_CALLOUT_NOHUP    0x00000001
43 #define ROCKET_FORCE_CD         0x00000002
44 #define ROCKET_HUP_NOTIFY       0x00000004
45 #define ROCKET_SPLIT_TERMIOS    0x00000008
46 #define ROCKET_SPD_MASK         0x00000070
47 #define ROCKET_SPD_HI           0x00000010      /* Use 56000 instead of 38400 bps */
48 #define ROCKET_SPD_VHI          0x00000020      /* Use 115200 instead of 38400 bps */
49 #define ROCKET_SPD_SHI          0x00000030      /* Use 230400 instead of 38400 bps */
50 #define ROCKET_SPD_WARP         0x00000040      /* Use 460800 instead of 38400 bps */
51 #define ROCKET_SAK              0x00000080
52 #define ROCKET_SESSION_LOCKOUT  0x00000100
53 #define ROCKET_PGRP_LOCKOUT     0x00000200
54 #define ROCKET_RTS_TOGGLE       0x00000400
55 #define ROCKET_MODE_MASK        0x00003000
56 #define ROCKET_MODE_RS232       0x00000000
57 #define ROCKET_MODE_RS485       0x00001000
58 #define ROCKET_MODE_RS422       0x00002000
59 #define ROCKET_FLAGS            0x00003FFF
60
61 #define ROCKET_USR_MASK 0x0071  /* Legal flags that non-privileged
62                                  * users can set or reset */
63
64 /*
65  * For closing_wait and closing_wait2
66  */
67 #define ROCKET_CLOSING_WAIT_NONE        65535
68 #define ROCKET_CLOSING_WAIT_INF         0
69
70 /*
71  * Rocketport ioctls -- "RP"
72  */
73 #define RCKP_GET_STRUCT         0x00525001
74 #define RCKP_GET_CONFIG         0x00525002
75 #define RCKP_SET_CONFIG         0x00525003
76 #define RCKP_GET_PORTS          0x00525004
77 #define RCKP_RESET_RM2          0x00525005
78 #define RCKP_GET_VERSION        0x00525006
79
80 /*  Rocketport Models */
81 #define MODEL_RP32INTF        0x0001    /* RP 32 port w/external I/F   */
82 #define MODEL_RP8INTF         0x0002    /* RP 8 port w/external I/F    */
83 #define MODEL_RP16INTF        0x0003    /* RP 16 port w/external I/F   */
84 #define MODEL_RP8OCTA         0x0005    /* RP 8 port w/octa cable      */
85 #define MODEL_RP4QUAD         0x0004    /* RP 4 port w/quad cable      */
86 #define MODEL_RP8J            0x0006    /* RP 8 port w/RJ11 connectors */
87 #define MODEL_RP4J            0x0007    /* RP 4 port w/RJ45 connectors */
88 #define MODEL_RP8SNI          0x0008    /* RP 8 port w/ DB78 SNI connector */
89 #define MODEL_RP16SNI         0x0009    /* RP 16 port w/ DB78 SNI connector */
90 #define MODEL_RPP4            0x000A    /* RP Plus 4 port              */
91 #define MODEL_RPP8            0x000B    /* RP Plus 8 port              */
92 #define MODEL_RP2_232         0x000E    /* RP Plus 2 port RS232        */
93 #define MODEL_RP2_422         0x000F    /* RP Plus 2 port RS232        */
94
95 /*  Rocketmodem II Models */
96 #define MODEL_RP6M            0x000C    /* RM 6 port                   */
97 #define MODEL_RP4M            0x000D    /* RM 4 port                   */
98
99 /* Universal PCI boards */
100 #define MODEL_UPCI_RP32INTF   0x0801    /* RP UPCI 32 port w/external I/F     */
101 #define MODEL_UPCI_RP8INTF    0x0802    /* RP UPCI 8 port w/external I/F      */
102 #define MODEL_UPCI_RP16INTF   0x0803    /* RP UPCI 16 port w/external I/F     */
103 #define MODEL_UPCI_RP8OCTA    0x0805    /* RP UPCI 8 port w/octa cable        */ 
104 #define MODEL_UPCI_RM3_8PORT  0x080C    /* RP UPCI Rocketmodem III 8 port     */
105 #define MODEL_UPCI_RM3_4PORT  0x080C    /* RP UPCI Rocketmodem III 4 port     */
106
107 /*  Compact PCI 16 port  */
108 #define MODEL_CPCI_RP16INTF   0x0903    /* RP Compact PCI 16 port w/external I/F */
109
110 /* All ISA boards */
111 #define MODEL_ISA             0x1000