Commit acbc49f0d9e7d787151c6c20bfa31e5b9c92e6c8

Authored by Marco Aurelio da Costa
1 parent c6b4a7e9

Use Linux formating rules

Showing 1 changed file with 257 additions and 277 deletions
module/tty0tty.c
@@ -25,8 +25,6 @@ @@ -25,8 +25,6 @@
25 For e-mail suggestions : lcgamboa@yahoo.com 25 For e-mail suggestions : lcgamboa@yahoo.com
26 ######################################################################## */ 26 ######################################################################## */
27 27
28 -  
29 -  
30 #include <linux/kernel.h> 28 #include <linux/kernel.h>
31 #include <linux/errno.h> 29 #include <linux/errno.h>
32 #include <linux/init.h> 30 #include <linux/init.h>
@@ -44,19 +42,19 @@ @@ -44,19 +42,19 @@
44 #endif 42 #endif
45 #include <asm/uaccess.h> 43 #include <asm/uaccess.h>
46 44
47 -  
48 #define DRIVER_VERSION "v1.2" 45 #define DRIVER_VERSION "v1.2"
49 #define DRIVER_AUTHOR "Luis Claudio Gamboa Lopes <lcgamboa@yahoo.com>" 46 #define DRIVER_AUTHOR "Luis Claudio Gamboa Lopes <lcgamboa@yahoo.com>"
50 #define DRIVER_DESC "tty0tty null modem driver" 47 #define DRIVER_DESC "tty0tty null modem driver"
51 48
52 /* Module information */ 49 /* Module information */
53 -MODULE_AUTHOR( DRIVER_AUTHOR );  
54 -MODULE_DESCRIPTION( DRIVER_DESC ); 50 +MODULE_AUTHOR(DRIVER_AUTHOR);
  51 +MODULE_DESCRIPTION(DRIVER_DESC);
55 MODULE_LICENSE("GPL"); 52 MODULE_LICENSE("GPL");
56 53
57 -short pairs = 4; //Default number of pairs of devices 54 +short pairs = 4; //Default number of pairs of devices
58 module_param(pairs, short, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); 55 module_param(pairs, short, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
59 -MODULE_PARM_DESC(pairs, "Number of pairs of devices to be created, maximum of 128"); 56 +MODULE_PARM_DESC(pairs,
  57 + "Number of pairs of devices to be created, maximum of 128");
60 58
61 #if 0 59 #if 0
62 #define TTY0TTY_MAJOR 240 /* experimental range */ 60 #define TTY0TTY_MAJOR 240 /* experimental range */
@@ -76,40 +74,38 @@ MODULE_PARM_DESC(pairs, &quot;Number of pairs of devices to be created, maximum of 12 @@ -76,40 +74,38 @@ MODULE_PARM_DESC(pairs, &quot;Number of pairs of devices to be created, maximum of 12
76 #define MSR_CD 0x20 74 #define MSR_CD 0x20
77 #define MSR_DSR 0x40 75 #define MSR_DSR 0x40
78 #define MSR_RI 0x80 76 #define MSR_RI 0x80
79 -  
80 77
81 static struct tty_port *tport; 78 static struct tty_port *tport;
82 79
83 struct tty0tty_serial { 80 struct tty0tty_serial {
84 - struct tty_struct *tty; /* pointer to the tty for this device */  
85 - int open_count; /* number of times this port has been opened */  
86 - struct semaphore sem; /* locks this structure */ 81 + struct tty_struct *tty; /* pointer to the tty for this device */
  82 + int open_count; /* number of times this port has been opened */
  83 + struct semaphore sem; /* locks this structure */
87 84
88 /* for tiocmget and tiocmset functions */ 85 /* for tiocmget and tiocmset functions */
89 - int msr; /* MSR shadow */  
90 - int mcr; /* MCR shadow */ 86 + int msr; /* MSR shadow */
  87 + int mcr; /* MCR shadow */
91 88
92 /* for ioctl fun */ 89 /* for ioctl fun */
93 - struct serial_struct serial;  
94 - wait_queue_head_t wait;  
95 - struct async_icount icount;  
96 - 90 + struct serial_struct serial;
  91 + wait_queue_head_t wait;
  92 + struct async_icount icount;
  93 +
97 }; 94 };
98 95
99 static struct tty0tty_serial **tty0tty_table; /* initially all NULL */ 96 static struct tty0tty_serial **tty0tty_table; /* initially all NULL */
100 97
101 -  
102 static int tty0tty_open(struct tty_struct *tty, struct file *file) 98 static int tty0tty_open(struct tty_struct *tty, struct file *file)
103 { 99 {
104 struct tty0tty_serial *tty0tty; 100 struct tty0tty_serial *tty0tty;
105 - int index;  
106 - int msr=0;  
107 - int mcr=0; 101 + int index;
  102 + int msr = 0;
  103 + int mcr = 0;
108 104
109 #ifdef SCULL_DEBUG 105 #ifdef SCULL_DEBUG
110 printk(KERN_DEBUG "%s - \n", __FUNCTION__); 106 printk(KERN_DEBUG "%s - \n", __FUNCTION__);
111 -#endif  
112 - /* initialize the pointer in case something fails */ 107 +#endif
  108 + /* initialize the pointer in case something fails */
113 tty->driver_data = NULL; 109 tty->driver_data = NULL;
114 110
115 /* get the serial object associated with this tty pointer */ 111 /* get the serial object associated with this tty pointer */
@@ -121,48 +117,42 @@ static int tty0tty_open(struct tty_struct *tty, struct file *file) @@ -121,48 +117,42 @@ static int tty0tty_open(struct tty_struct *tty, struct file *file)
121 if (!tty0tty) 117 if (!tty0tty)
122 return -ENOMEM; 118 return -ENOMEM;
123 119
124 - sema_init(&tty0tty->sem,1); 120 + sema_init(&tty0tty->sem, 1);
125 tty0tty->open_count = 0; 121 tty0tty->open_count = 0;
126 122
127 tty0tty_table[index] = tty0tty; 123 tty0tty_table[index] = tty0tty;
128 -  
129 - }  
130 -  
131 - tport[index].tty=tty;  
132 - tty->port = &tport[index];  
133 -  
134 - if( (index % 2) == 0)  
135 - {  
136 - if(tty0tty_table[index+1] != NULL)  
137 - if (tty0tty_table[index+1]->open_count > 0)  
138 - mcr=tty0tty_table[index+1]->mcr;  
139 - }  
140 - else  
141 - {  
142 - if(tty0tty_table[index-1] != NULL)  
143 - if (tty0tty_table[index-1]->open_count > 0)  
144 - mcr=tty0tty_table[index-1]->mcr;  
145 - }  
146 - 124 +
  125 + }
  126 +
  127 + tport[index].tty = tty;
  128 + tty->port = &tport[index];
  129 +
  130 + if ((index % 2) == 0) {
  131 + if (tty0tty_table[index + 1] != NULL)
  132 + if (tty0tty_table[index + 1]->open_count > 0)
  133 + mcr = tty0tty_table[index + 1]->mcr;
  134 + } else {
  135 + if (tty0tty_table[index - 1] != NULL)
  136 + if (tty0tty_table[index - 1]->open_count > 0)
  137 + mcr = tty0tty_table[index - 1]->mcr;
  138 + }
  139 +
147 //null modem connection 140 //null modem connection
148 141
149 - if( (mcr & MCR_RTS) == MCR_RTS )  
150 - {  
151 - msr |= MSR_CTS;  
152 - }  
153 -  
154 - if( (mcr & MCR_DTR) == MCR_DTR )  
155 - {  
156 - msr |= MSR_DSR;  
157 - msr |= MSR_CD;  
158 - }  
159 - 142 + if ((mcr & MCR_RTS) == MCR_RTS) {
  143 + msr |= MSR_CTS;
  144 + }
  145 +
  146 + if ((mcr & MCR_DTR) == MCR_DTR) {
  147 + msr |= MSR_DSR;
  148 + msr |= MSR_CD;
  149 + }
  150 +
160 tty0tty->msr = msr; 151 tty0tty->msr = msr;
161 tty0tty->mcr = 0; 152 tty0tty->mcr = 0;
162 -  
163 153
164 /* register the tty driver */ 154 /* register the tty driver */
165 - 155 +
166 down(&tty0tty->sem); 156 down(&tty0tty->sem);
167 157
168 /* save our structure within the tty structure */ 158 /* save our structure within the tty structure */
@@ -176,25 +166,26 @@ static int tty0tty_open(struct tty_struct *tty, struct file *file) @@ -176,25 +166,26 @@ static int tty0tty_open(struct tty_struct *tty, struct file *file)
176 } 166 }
177 167
178 static void do_close(struct tty0tty_serial *tty0tty) 168 static void do_close(struct tty0tty_serial *tty0tty)
179 -{  
180 - unsigned int msr=0;  
181 - 169 +{
  170 + unsigned int msr = 0;
  171 +
182 #ifdef SCULL_DEBUG 172 #ifdef SCULL_DEBUG
183 printk(KERN_DEBUG "%s - \n", __FUNCTION__); 173 printk(KERN_DEBUG "%s - \n", __FUNCTION__);
184 #endif 174 #endif
185 - if( (tty0tty->tty->index % 2) == 0)  
186 - {  
187 - if(tty0tty_table[tty0tty->tty->index+1] != NULL)  
188 - if (tty0tty_table[tty0tty->tty->index+1]->open_count > 0)  
189 - tty0tty_table[tty0tty->tty->index+1]->msr=msr;  
190 - }  
191 - else  
192 - {  
193 - if(tty0tty_table[tty0tty->tty->index-1] != NULL)  
194 - if (tty0tty_table[tty0tty->tty->index-1]->open_count > 0)  
195 - tty0tty_table[tty0tty->tty->index-1]->msr=msr;  
196 - }  
197 - 175 + if ((tty0tty->tty->index % 2) == 0) {
  176 + if (tty0tty_table[tty0tty->tty->index + 1] != NULL)
  177 + if (tty0tty_table[tty0tty->tty->index + 1]->open_count >
  178 + 0)
  179 + tty0tty_table[tty0tty->tty->index + 1]->msr =
  180 + msr;
  181 + } else {
  182 + if (tty0tty_table[tty0tty->tty->index - 1] != NULL)
  183 + if (tty0tty_table[tty0tty->tty->index - 1]->open_count >
  184 + 0)
  185 + tty0tty_table[tty0tty->tty->index - 1]->msr =
  186 + msr;
  187 + }
  188 +
198 down(&tty0tty->sem); 189 down(&tty0tty->sem);
199 if (!tty0tty->open_count) { 190 if (!tty0tty->open_count) {
200 /* port was never opened */ 191 /* port was never opened */
@@ -204,29 +195,29 @@ static void do_close(struct tty0tty_serial *tty0tty) @@ -204,29 +195,29 @@ static void do_close(struct tty0tty_serial *tty0tty)
204 --tty0tty->open_count; 195 --tty0tty->open_count;
205 exit: 196 exit:
206 up(&tty0tty->sem); 197 up(&tty0tty->sem);
207 -  
208 -  
209 - return; 198 +
  199 + return;
210 } 200 }
211 201
212 static void tty0tty_close(struct tty_struct *tty, struct file *file) 202 static void tty0tty_close(struct tty_struct *tty, struct file *file)
213 { 203 {
214 struct tty0tty_serial *tty0tty = tty->driver_data; 204 struct tty0tty_serial *tty0tty = tty->driver_data;
215 - 205 +
216 #ifdef SCULL_DEBUG 206 #ifdef SCULL_DEBUG
217 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 207 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
218 #endif 208 #endif
219 if (tty0tty) 209 if (tty0tty)
220 do_close(tty0tty); 210 do_close(tty0tty);
221 -} 211 +}
222 212
223 -static int tty0tty_write(struct tty_struct *tty, const unsigned char *buffer, int count) 213 +static int tty0tty_write(struct tty_struct *tty, const unsigned char *buffer,
  214 + int count)
224 { 215 {
225 struct tty0tty_serial *tty0tty = tty->driver_data; 216 struct tty0tty_serial *tty0tty = tty->driver_data;
226 int retval = -EINVAL; 217 int retval = -EINVAL;
227 - struct tty_struct *ttyx = NULL; 218 + struct tty_struct *ttyx = NULL;
228 219
229 - if (!tty0tty) 220 + if (!tty0tty)
230 return -ENODEV; 221 return -ENODEV;
231 222
232 down(&tty0tty->sem); 223 down(&tty0tty->sem);
@@ -235,48 +226,48 @@ static int tty0tty_write(struct tty_struct *tty, const unsigned char *buffer, in @@ -235,48 +226,48 @@ static int tty0tty_write(struct tty_struct *tty, const unsigned char *buffer, in
235 /* port was not opened */ 226 /* port was not opened */
236 goto exit; 227 goto exit;
237 228
238 - if( (tty0tty->tty->index % 2) == 0)  
239 - {  
240 - if(tty0tty_table[tty0tty->tty->index+1] != NULL)  
241 - if (tty0tty_table[tty0tty->tty->index+1]->open_count > 0)  
242 - ttyx=tty0tty_table[tty0tty->tty->index+1]->tty;  
243 - }  
244 - else  
245 - {  
246 - if(tty0tty_table[tty0tty->tty->index-1] != NULL)  
247 - if (tty0tty_table[tty0tty->tty->index-1]->open_count > 0)  
248 - ttyx=tty0tty_table[tty0tty->tty->index-1]->tty;  
249 - } 229 + if ((tty0tty->tty->index % 2) == 0) {
  230 + if (tty0tty_table[tty0tty->tty->index + 1] != NULL)
  231 + if (tty0tty_table[tty0tty->tty->index + 1]->open_count >
  232 + 0)
  233 + ttyx =
  234 + tty0tty_table[tty0tty->tty->index + 1]->tty;
  235 + } else {
  236 + if (tty0tty_table[tty0tty->tty->index - 1] != NULL)
  237 + if (tty0tty_table[tty0tty->tty->index - 1]->open_count >
  238 + 0)
  239 + ttyx =
  240 + tty0tty_table[tty0tty->tty->index - 1]->tty;
  241 + }
250 242
251 // tty->low_latency=1; 243 // tty->low_latency=1;
252 244
253 - if(ttyx != NULL)  
254 - { 245 + if (ttyx != NULL) {
255 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) 246 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
256 - tty_insert_flip_string(ttyx->port, buffer, count);  
257 - tty_flip_buffer_push(ttyx->port); 247 + tty_insert_flip_string(ttyx->port, buffer, count);
  248 + tty_flip_buffer_push(ttyx->port);
258 #else 249 #else
259 - tty_insert_flip_string(ttyx, buffer, count);  
260 - tty_flip_buffer_push(ttyx); 250 + tty_insert_flip_string(ttyx, buffer, count);
  251 + tty_flip_buffer_push(ttyx);
261 #endif 252 #endif
262 - retval=count;  
263 - }  
264 - 253 + retval = count;
  254 + }
  255 +
265 exit: 256 exit:
266 up(&tty0tty->sem); 257 up(&tty0tty->sem);
267 return retval; 258 return retval;
268 } 259 }
269 260
270 -static int tty0tty_write_room(struct tty_struct *tty) 261 +static int tty0tty_write_room(struct tty_struct *tty)
271 { 262 {
272 struct tty0tty_serial *tty0tty = tty->driver_data; 263 struct tty0tty_serial *tty0tty = tty->driver_data;
273 int room = -EINVAL; 264 int room = -EINVAL;
274 - 265 +
275 if (!tty0tty) 266 if (!tty0tty)
276 return -ENODEV; 267 return -ENODEV;
277 268
278 down(&tty0tty->sem); 269 down(&tty0tty->sem);
279 - 270 +
280 if (!tty0tty->open_count) { 271 if (!tty0tty->open_count) {
281 /* port was not opened */ 272 /* port was not opened */
282 goto exit; 273 goto exit;
@@ -290,17 +281,16 @@ exit: @@ -290,17 +281,16 @@ exit:
290 return room; 281 return room;
291 } 282 }
292 283
293 -  
294 -  
295 #define RELEVANT_IFLAG(iflag) ((iflag) & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK)) 284 #define RELEVANT_IFLAG(iflag) ((iflag) & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
296 285
297 -static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios) 286 +static void tty0tty_set_termios(struct tty_struct *tty,
  287 + struct ktermios *old_termios)
298 { 288 {
299 unsigned int cflag; 289 unsigned int cflag;
300 unsigned int iflag; 290 unsigned int iflag;
301 - 291 +
302 #ifdef SCULL_DEBUG 292 #ifdef SCULL_DEBUG
303 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 293 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
304 #endif 294 #endif
305 295
306 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0) 296 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
@@ -314,7 +304,7 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter @@ -314,7 +304,7 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter
314 /* check that they really want us to change something */ 304 /* check that they really want us to change something */
315 if (old_termios) { 305 if (old_termios) {
316 if ((cflag == old_termios->c_cflag) && 306 if ((cflag == old_termios->c_cflag) &&
317 - (RELEVANT_IFLAG(iflag) == 307 + (RELEVANT_IFLAG(iflag) ==
318 RELEVANT_IFLAG(old_termios->c_iflag))) { 308 RELEVANT_IFLAG(old_termios->c_iflag))) {
319 #ifdef SCULL_DEBUG 309 #ifdef SCULL_DEBUG
320 printk(KERN_DEBUG " - nothing to change...\n"); 310 printk(KERN_DEBUG " - nothing to change...\n");
@@ -322,25 +312,24 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter @@ -322,25 +312,24 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter
322 return; 312 return;
323 } 313 }
324 } 314 }
325 -  
326 #ifdef SCULL_DEBUG 315 #ifdef SCULL_DEBUG
327 /* get the byte size */ 316 /* get the byte size */
328 switch (cflag & CSIZE) { 317 switch (cflag & CSIZE) {
329 - case CS5:  
330 - printk(KERN_DEBUG " - data bits = 5\n");  
331 - break;  
332 - case CS6:  
333 - printk(KERN_DEBUG " - data bits = 6\n");  
334 - break;  
335 - case CS7:  
336 - printk(KERN_DEBUG " - data bits = 7\n");  
337 - break;  
338 - default:  
339 - case CS8:  
340 - printk(KERN_DEBUG " - data bits = 8\n");  
341 - break; 318 + case CS5:
  319 + printk(KERN_DEBUG " - data bits = 5\n");
  320 + break;
  321 + case CS6:
  322 + printk(KERN_DEBUG " - data bits = 6\n");
  323 + break;
  324 + case CS7:
  325 + printk(KERN_DEBUG " - data bits = 7\n");
  326 + break;
  327 + default:
  328 + case CS8:
  329 + printk(KERN_DEBUG " - data bits = 8\n");
  330 + break;
342 } 331 }
343 - 332 +
344 /* determine the parity */ 333 /* determine the parity */
345 if (cflag & PARENB) 334 if (cflag & PARENB)
346 if (cflag & PARODD) 335 if (cflag & PARODD)
@@ -361,27 +350,29 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter @@ -361,27 +350,29 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter
361 printk(KERN_DEBUG " - RTS/CTS is enabled\n"); 350 printk(KERN_DEBUG " - RTS/CTS is enabled\n");
362 else 351 else
363 printk(KERN_DEBUG " - RTS/CTS is disabled\n"); 352 printk(KERN_DEBUG " - RTS/CTS is disabled\n");
364 - 353 +
365 /* determine software flow control */ 354 /* determine software flow control */
366 /* if we are implementing XON/XOFF, set the start and 355 /* if we are implementing XON/XOFF, set the start and
367 * stop character in the device */ 356 * stop character in the device */
368 if (I_IXOFF(tty) || I_IXON(tty)) { 357 if (I_IXOFF(tty) || I_IXON(tty)) {
369 - unsigned char stop_char = STOP_CHAR(tty); 358 + unsigned char stop_char = STOP_CHAR(tty);
370 unsigned char start_char = START_CHAR(tty); 359 unsigned char start_char = START_CHAR(tty);
371 360
372 /* if we are implementing INBOUND XON/XOFF */ 361 /* if we are implementing INBOUND XON/XOFF */
373 if (I_IXOFF(tty)) 362 if (I_IXOFF(tty))
374 printk(KERN_DEBUG " - INBOUND XON/XOFF is enabled, " 363 printk(KERN_DEBUG " - INBOUND XON/XOFF is enabled, "
375 - "XON = %2x, XOFF = %2x\n", start_char, stop_char); 364 + "XON = %2x, XOFF = %2x\n", start_char,
  365 + stop_char);
376 else 366 else
377 - printk(KERN_DEBUG" - INBOUND XON/XOFF is disabled\n"); 367 + printk(KERN_DEBUG " - INBOUND XON/XOFF is disabled\n");
378 368
379 /* if we are implementing OUTBOUND XON/XOFF */ 369 /* if we are implementing OUTBOUND XON/XOFF */
380 if (I_IXON(tty)) 370 if (I_IXON(tty))
381 - printk(KERN_DEBUG" - OUTBOUND XON/XOFF is enabled, "  
382 - "XON = %2x, XOFF = %2x\n", start_char, stop_char); 371 + printk(KERN_DEBUG " - OUTBOUND XON/XOFF is enabled, "
  372 + "XON = %2x, XOFF = %2x\n", start_char,
  373 + stop_char);
383 else 374 else
384 - printk(KERN_DEBUG" - OUTBOUND XON/XOFF is disabled\n"); 375 + printk(KERN_DEBUG " - OUTBOUND XON/XOFF is disabled\n");
385 } 376 }
386 377
387 /* get the baud rate wanted */ 378 /* get the baud rate wanted */
@@ -389,7 +380,6 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter @@ -389,7 +380,6 @@ static void tty0tty_set_termios(struct tty_struct *tty, struct ktermios *old_ter
389 #endif 380 #endif
390 } 381 }
391 382
392 -  
393 //static int tty0tty_tiocmget(struct tty_struct *tty, struct file *file) 383 //static int tty0tty_tiocmget(struct tty_struct *tty, struct file *file)
394 static int tty0tty_tiocmget(struct tty_struct *tty) 384 static int tty0tty_tiocmget(struct tty_struct *tty)
395 { 385 {
@@ -398,103 +388,94 @@ static int tty0tty_tiocmget(struct tty_struct *tty) @@ -398,103 +388,94 @@ static int tty0tty_tiocmget(struct tty_struct *tty)
398 unsigned int result = 0; 388 unsigned int result = 0;
399 unsigned int msr = tty0tty->msr; 389 unsigned int msr = tty0tty->msr;
400 unsigned int mcr = tty0tty->mcr; 390 unsigned int mcr = tty0tty->mcr;
401 -  
402 391
403 - result = ((mcr & MCR_DTR) ? TIOCM_DTR : 0) | /* DTR is set */  
404 - ((mcr & MCR_RTS) ? TIOCM_RTS : 0) | /* RTS is set */  
405 - ((mcr & MCR_LOOP) ? TIOCM_LOOP : 0) | /* LOOP is set */  
406 - ((msr & MSR_CTS) ? TIOCM_CTS : 0) | /* CTS is set */  
407 - ((msr & MSR_CD) ? TIOCM_CAR : 0) | /* Carrier detect is set*/  
408 - ((msr & MSR_RI) ? TIOCM_RI : 0) | /* Ring Indicator is set */  
409 - ((msr & MSR_DSR) ? TIOCM_DSR : 0); /* DSR is set */ 392 + result = ((mcr & MCR_DTR) ? TIOCM_DTR : 0) | /* DTR is set */
  393 + ((mcr & MCR_RTS) ? TIOCM_RTS : 0) | /* RTS is set */
  394 + ((mcr & MCR_LOOP) ? TIOCM_LOOP : 0) | /* LOOP is set */
  395 + ((msr & MSR_CTS) ? TIOCM_CTS : 0) | /* CTS is set */
  396 + ((msr & MSR_CD) ? TIOCM_CAR : 0) | /* Carrier detect is set */
  397 + ((msr & MSR_RI) ? TIOCM_RI : 0) | /* Ring Indicator is set */
  398 + ((msr & MSR_DSR) ? TIOCM_DSR : 0); /* DSR is set */
410 399
411 return result; 400 return result;
412 } 401 }
413 402
414 -  
415 -  
416 -  
417 -  
418 //static int tty0tty_tiocmset(struct tty_struct *tty, struct file *file, 403 //static int tty0tty_tiocmset(struct tty_struct *tty, struct file *file,
419 -static int tty0tty_tiocmset(struct tty_struct *tty,  
420 - unsigned int set, unsigned int clear) 404 +static int tty0tty_tiocmset(struct tty_struct *tty,
  405 + unsigned int set, unsigned int clear)
421 { 406 {
422 struct tty0tty_serial *tty0tty = tty->driver_data; 407 struct tty0tty_serial *tty0tty = tty->driver_data;
423 unsigned int mcr = tty0tty->mcr; 408 unsigned int mcr = tty0tty->mcr;
424 - unsigned int msr=0;  
425 - 409 + unsigned int msr = 0;
  410 +
426 #ifdef SCULL_DEBUG 411 #ifdef SCULL_DEBUG
427 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 412 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
428 #endif 413 #endif
429 414
430 - if( (tty0tty->tty->index % 2) == 0)  
431 - {  
432 - if(tty0tty_table[tty0tty->tty->index+1] != NULL)  
433 - if (tty0tty_table[tty0tty->tty->index+1]->open_count > 0)  
434 - msr=tty0tty_table[tty0tty->tty->index+1]->msr;  
435 - }  
436 - else  
437 - {  
438 - if(tty0tty_table[tty0tty->tty->index-1] != NULL)  
439 - if (tty0tty_table[tty0tty->tty->index-1]->open_count > 0)  
440 - msr=tty0tty_table[tty0tty->tty->index-1]->msr;  
441 - }  
442 - 415 + if ((tty0tty->tty->index % 2) == 0) {
  416 + if (tty0tty_table[tty0tty->tty->index + 1] != NULL)
  417 + if (tty0tty_table[tty0tty->tty->index + 1]->open_count >
  418 + 0)
  419 + msr =
  420 + tty0tty_table[tty0tty->tty->index + 1]->msr;
  421 + } else {
  422 + if (tty0tty_table[tty0tty->tty->index - 1] != NULL)
  423 + if (tty0tty_table[tty0tty->tty->index - 1]->open_count >
  424 + 0)
  425 + msr =
  426 + tty0tty_table[tty0tty->tty->index - 1]->msr;
  427 + }
  428 +
443 //null modem connection 429 //null modem connection
444 430
445 - if (set & TIOCM_RTS)  
446 - {  
447 - mcr |= MCR_RTS;  
448 - msr |= MSR_CTS;  
449 - }  
450 -  
451 - if (set & TIOCM_DTR)  
452 - {  
453 - mcr |= MCR_DTR;  
454 - msr |= MSR_DSR;  
455 - msr |= MSR_CD;  
456 - }  
457 -  
458 - if (clear & TIOCM_RTS)  
459 - {  
460 - mcr &= ~MCR_RTS;  
461 - msr &= ~MSR_CTS;  
462 - }  
463 -  
464 - if (clear & TIOCM_DTR)  
465 - {  
466 - mcr &= ~MCR_DTR;  
467 - msr &= ~MSR_DSR;  
468 - msr &= ~MSR_CD;  
469 - }  
470 - 431 + if (set & TIOCM_RTS) {
  432 + mcr |= MCR_RTS;
  433 + msr |= MSR_CTS;
  434 + }
  435 +
  436 + if (set & TIOCM_DTR) {
  437 + mcr |= MCR_DTR;
  438 + msr |= MSR_DSR;
  439 + msr |= MSR_CD;
  440 + }
  441 +
  442 + if (clear & TIOCM_RTS) {
  443 + mcr &= ~MCR_RTS;
  444 + msr &= ~MSR_CTS;
  445 + }
  446 +
  447 + if (clear & TIOCM_DTR) {
  448 + mcr &= ~MCR_DTR;
  449 + msr &= ~MSR_DSR;
  450 + msr &= ~MSR_CD;
  451 + }
471 452
472 /* set the new MCR value in the device */ 453 /* set the new MCR value in the device */
473 tty0tty->mcr = mcr; 454 tty0tty->mcr = mcr;
474 -  
475 - if( (tty0tty->tty->index % 2) == 0)  
476 - {  
477 - if(tty0tty_table[tty0tty->tty->index+1] != NULL)  
478 - if (tty0tty_table[tty0tty->tty->index+1]->open_count > 0)  
479 - tty0tty_table[tty0tty->tty->index+1]->msr=msr;  
480 - }  
481 - else  
482 - {  
483 - if(tty0tty_table[tty0tty->tty->index-1] != NULL)  
484 - if (tty0tty_table[tty0tty->tty->index-1]->open_count > 0)  
485 - tty0tty_table[tty0tty->tty->index-1]->msr=msr;  
486 - } 455 +
  456 + if ((tty0tty->tty->index % 2) == 0) {
  457 + if (tty0tty_table[tty0tty->tty->index + 1] != NULL)
  458 + if (tty0tty_table[tty0tty->tty->index + 1]->open_count >
  459 + 0)
  460 + tty0tty_table[tty0tty->tty->index + 1]->msr =
  461 + msr;
  462 + } else {
  463 + if (tty0tty_table[tty0tty->tty->index - 1] != NULL)
  464 + if (tty0tty_table[tty0tty->tty->index - 1]->open_count >
  465 + 0)
  466 + tty0tty_table[tty0tty->tty->index - 1]->msr =
  467 + msr;
  468 + }
487 return 0; 469 return 0;
488 } 470 }
489 471
490 -  
491 -static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty,  
492 - unsigned int cmd, unsigned long arg) 472 +static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty,
  473 + unsigned int cmd, unsigned long arg)
493 { 474 {
494 struct tty0tty_serial *tty0tty = tty->driver_data; 475 struct tty0tty_serial *tty0tty = tty->driver_data;
495 - 476 +
496 #ifdef SCULL_DEBUG 477 #ifdef SCULL_DEBUG
497 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 478 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
498 #endif 479 #endif
499 if (cmd == TIOCGSERIAL) { 480 if (cmd == TIOCGSERIAL) {
500 struct serial_struct tmp; 481 struct serial_struct tmp;
@@ -504,20 +485,21 @@ static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty, @@ -504,20 +485,21 @@ static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty,
504 485
505 memset(&tmp, 0, sizeof(tmp)); 486 memset(&tmp, 0, sizeof(tmp));
506 487
507 - tmp.type = tty0tty->serial.type;  
508 - tmp.line = tty0tty->serial.line;  
509 - tmp.port = tty0tty->serial.port;  
510 - tmp.irq = tty0tty->serial.irq;  
511 - tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;  
512 - tmp.xmit_fifo_size = tty0tty->serial.xmit_fifo_size;  
513 - tmp.baud_base = tty0tty->serial.baud_base;  
514 - tmp.close_delay = 5*HZ;  
515 - tmp.closing_wait = 30*HZ;  
516 - tmp.custom_divisor = tty0tty->serial.custom_divisor;  
517 - tmp.hub6 = tty0tty->serial.hub6;  
518 - tmp.io_type = tty0tty->serial.io_type;  
519 -  
520 - if (copy_to_user((void __user *)arg, &tmp, sizeof(struct serial_struct))) 488 + tmp.type = tty0tty->serial.type;
  489 + tmp.line = tty0tty->serial.line;
  490 + tmp.port = tty0tty->serial.port;
  491 + tmp.irq = tty0tty->serial.irq;
  492 + tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
  493 + tmp.xmit_fifo_size = tty0tty->serial.xmit_fifo_size;
  494 + tmp.baud_base = tty0tty->serial.baud_base;
  495 + tmp.close_delay = 5 * HZ;
  496 + tmp.closing_wait = 30 * HZ;
  497 + tmp.custom_divisor = tty0tty->serial.custom_divisor;
  498 + tmp.hub6 = tty0tty->serial.hub6;
  499 + tmp.io_type = tty0tty->serial.io_type;
  500 +
  501 + if (copy_to_user
  502 + ((void __user *)arg, &tmp, sizeof(struct serial_struct)))
521 return -EFAULT; 503 return -EFAULT;
522 return 0; 504 return 0;
523 } 505 }
@@ -525,12 +507,12 @@ static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty, @@ -525,12 +507,12 @@ static int tty0tty_ioctl_tiocgserial(struct tty_struct *tty,
525 } 507 }
526 508
527 static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty, 509 static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty,
528 - unsigned int cmd, unsigned long arg) 510 + unsigned int cmd, unsigned long arg)
529 { 511 {
530 struct tty0tty_serial *tty0tty = tty->driver_data; 512 struct tty0tty_serial *tty0tty = tty->driver_data;
531 - 513 +
532 #ifdef SCULL_DEBUG 514 #ifdef SCULL_DEBUG
533 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 515 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
534 #endif 516 #endif
535 if (cmd == TIOCMIWAIT) { 517 if (cmd == TIOCMIWAIT) {
536 DECLARE_WAITQUEUE(wait, current); 518 DECLARE_WAITQUEUE(wait, current);
@@ -551,11 +533,11 @@ static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty, @@ -551,11 +533,11 @@ static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty,
551 cnow = tty0tty->icount; 533 cnow = tty0tty->icount;
552 if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr && 534 if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr &&
553 cnow.dcd == cprev.dcd && cnow.cts == cprev.cts) 535 cnow.dcd == cprev.dcd && cnow.cts == cprev.cts)
554 - return -EIO; /* no change => error */ 536 + return -EIO; /* no change => error */
555 if (((arg & TIOCM_RNG) && (cnow.rng != cprev.rng)) || 537 if (((arg & TIOCM_RNG) && (cnow.rng != cprev.rng)) ||
556 ((arg & TIOCM_DSR) && (cnow.dsr != cprev.dsr)) || 538 ((arg & TIOCM_DSR) && (cnow.dsr != cprev.dsr)) ||
557 - ((arg & TIOCM_CD) && (cnow.dcd != cprev.dcd)) ||  
558 - ((arg & TIOCM_CTS) && (cnow.cts != cprev.cts)) ) { 539 + ((arg & TIOCM_CD) && (cnow.dcd != cprev.dcd)) ||
  540 + ((arg & TIOCM_CTS) && (cnow.cts != cprev.cts))) {
559 return 0; 541 return 0;
560 } 542 }
561 cprev = cnow; 543 cprev = cnow;
@@ -566,27 +548,27 @@ static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty, @@ -566,27 +548,27 @@ static int tty0tty_ioctl_tiocmiwait(struct tty_struct *tty,
566 } 548 }
567 549
568 static int tty0tty_ioctl_tiocgicount(struct tty_struct *tty, 550 static int tty0tty_ioctl_tiocgicount(struct tty_struct *tty,
569 - unsigned int cmd, unsigned long arg) 551 + unsigned int cmd, unsigned long arg)
570 { 552 {
571 struct tty0tty_serial *tty0tty = tty->driver_data; 553 struct tty0tty_serial *tty0tty = tty->driver_data;
572 - 554 +
573 #ifdef SCULL_DEBUG 555 #ifdef SCULL_DEBUG
574 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 556 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
575 #endif 557 #endif
576 if (cmd == TIOCGICOUNT) { 558 if (cmd == TIOCGICOUNT) {
577 struct async_icount cnow = tty0tty->icount; 559 struct async_icount cnow = tty0tty->icount;
578 struct serial_icounter_struct icount; 560 struct serial_icounter_struct icount;
579 561
580 - icount.cts = cnow.cts;  
581 - icount.dsr = cnow.dsr;  
582 - icount.rng = cnow.rng;  
583 - icount.dcd = cnow.dcd;  
584 - icount.rx = cnow.rx;  
585 - icount.tx = cnow.tx;  
586 - icount.frame = cnow.frame;  
587 - icount.overrun = cnow.overrun;  
588 - icount.parity = cnow.parity;  
589 - icount.brk = cnow.brk; 562 + icount.cts = cnow.cts;
  563 + icount.dsr = cnow.dsr;
  564 + icount.rng = cnow.rng;
  565 + icount.dcd = cnow.dcd;
  566 + icount.rx = cnow.rx;
  567 + icount.tx = cnow.tx;
  568 + icount.frame = cnow.frame;
  569 + icount.overrun = cnow.overrun;
  570 + icount.parity = cnow.parity;
  571 + icount.brk = cnow.brk;
590 icount.buf_overrun = cnow.buf_overrun; 572 icount.buf_overrun = cnow.buf_overrun;
591 573
592 if (copy_to_user((void __user *)arg, &icount, sizeof(icount))) 574 if (copy_to_user((void __user *)arg, &icount, sizeof(icount)))
@@ -597,10 +579,10 @@ static int tty0tty_ioctl_tiocgicount(struct tty_struct *tty, @@ -597,10 +579,10 @@ static int tty0tty_ioctl_tiocgicount(struct tty_struct *tty,
597 } 579 }
598 580
599 static int tty0tty_ioctl(struct tty_struct *tty, 581 static int tty0tty_ioctl(struct tty_struct *tty,
600 - unsigned int cmd, unsigned long arg) 582 + unsigned int cmd, unsigned long arg)
601 { 583 {
602 #ifdef SCULL_DEBUG 584 #ifdef SCULL_DEBUG
603 - printk(KERN_DEBUG "%s - %04X \n", __FUNCTION__,cmd); 585 + printk(KERN_DEBUG "%s - %04X \n", __FUNCTION__, cmd);
604 #endif 586 #endif
605 switch (cmd) { 587 switch (cmd) {
606 case TIOCGSERIAL: 588 case TIOCGSERIAL:
@@ -625,29 +607,28 @@ static struct tty_operations serial_ops = { @@ -625,29 +607,28 @@ static struct tty_operations serial_ops = {
625 .ioctl = tty0tty_ioctl, 607 .ioctl = tty0tty_ioctl,
626 }; 608 };
627 609
628 -  
629 -  
630 -  
631 static struct tty_driver *tty0tty_tty_driver; 610 static struct tty_driver *tty0tty_tty_driver;
632 611
633 static int __init tty0tty_init(void) 612 static int __init tty0tty_init(void)
634 { 613 {
635 int retval; 614 int retval;
636 - int i;  
637 - if (pairs > 128) pairs = 128;  
638 - if (pairs < 1) pairs = 1;  
639 - tport = kmalloc(2*pairs*sizeof(struct tty_port),GFP_KERNEL);  
640 - tty0tty_table = kmalloc(2*pairs*sizeof(struct tty0tty_serial*),GFP_KERNEL);  
641 -  
642 - for(i=0;i<2*pairs;i++)  
643 - { 615 + int i;
  616 + if (pairs > 128)
  617 + pairs = 128;
  618 + if (pairs < 1)
  619 + pairs = 1;
  620 + tport = kmalloc(2 * pairs * sizeof(struct tty_port), GFP_KERNEL);
  621 + tty0tty_table =
  622 + kmalloc(2 * pairs * sizeof(struct tty0tty_serial *), GFP_KERNEL);
  623 +
  624 + for (i = 0; i < 2 * pairs; i++) {
644 tty0tty_table[i] = NULL; 625 tty0tty_table[i] = NULL;
645 } 626 }
646 #ifdef SCULL_DEBUG 627 #ifdef SCULL_DEBUG
647 printk(KERN_DEBUG "%s - \n", __FUNCTION__); 628 printk(KERN_DEBUG "%s - \n", __FUNCTION__);
648 #endif 629 #endif
649 /* allocate the tty driver */ 630 /* allocate the tty driver */
650 - tty0tty_tty_driver = alloc_tty_driver(2*pairs); 631 + tty0tty_tty_driver = alloc_tty_driver(2 * pairs);
651 if (!tty0tty_tty_driver) 632 if (!tty0tty_tty_driver)
652 return -ENOMEM; 633 return -ENOMEM;
653 634
@@ -655,32 +636,32 @@ static int __init tty0tty_init(void) @@ -655,32 +636,32 @@ static int __init tty0tty_init(void)
655 tty0tty_tty_driver->owner = THIS_MODULE; 636 tty0tty_tty_driver->owner = THIS_MODULE;
656 tty0tty_tty_driver->driver_name = "tty0tty"; 637 tty0tty_tty_driver->driver_name = "tty0tty";
657 tty0tty_tty_driver->name = "tnt"; 638 tty0tty_tty_driver->name = "tnt";
658 - /* no more devfs subsystem */ 639 + /* no more devfs subsystem */
659 tty0tty_tty_driver->major = TTY0TTY_MAJOR; 640 tty0tty_tty_driver->major = TTY0TTY_MAJOR;
660 tty0tty_tty_driver->minor_start = TTY0TTY_MINOR; 641 tty0tty_tty_driver->minor_start = TTY0TTY_MINOR;
661 tty0tty_tty_driver->type = TTY_DRIVER_TYPE_SERIAL; 642 tty0tty_tty_driver->type = TTY_DRIVER_TYPE_SERIAL;
662 tty0tty_tty_driver->subtype = SERIAL_TYPE_NORMAL; 643 tty0tty_tty_driver->subtype = SERIAL_TYPE_NORMAL;
663 - tty0tty_tty_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW ;  
664 - /* no more devfs subsystem */ 644 + tty0tty_tty_driver->flags =
  645 + TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW;
  646 + /* no more devfs subsystem */
665 tty0tty_tty_driver->init_termios = tty_std_termios; 647 tty0tty_tty_driver->init_termios = tty_std_termios;
666 - tty0tty_tty_driver->init_termios.c_iflag = 0;  
667 - tty0tty_tty_driver->init_termios.c_oflag = 0;  
668 - tty0tty_tty_driver->init_termios.c_cflag = B38400 | CS8 | CREAD;  
669 - tty0tty_tty_driver->init_termios.c_lflag = 0;  
670 - tty0tty_tty_driver->init_termios.c_ispeed = 38400;  
671 - tty0tty_tty_driver->init_termios.c_ospeed = 38400; 648 + tty0tty_tty_driver->init_termios.c_iflag = 0;
  649 + tty0tty_tty_driver->init_termios.c_oflag = 0;
  650 + tty0tty_tty_driver->init_termios.c_cflag = B38400 | CS8 | CREAD;
  651 + tty0tty_tty_driver->init_termios.c_lflag = 0;
  652 + tty0tty_tty_driver->init_termios.c_ispeed = 38400;
  653 + tty0tty_tty_driver->init_termios.c_ospeed = 38400;
672 654
673 tty_set_operations(tty0tty_tty_driver, &serial_ops); 655 tty_set_operations(tty0tty_tty_driver, &serial_ops);
674 -  
675 - for(i=0;i<2*pairs;i++)  
676 - {  
677 - tty_port_init(&tport[i]); 656 +
  657 + for (i = 0; i < 2 * pairs; i++) {
  658 + tty_port_init(&tport[i]);
678 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0) 659 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
679 - tty_port_link_device(&tport[i],tty0tty_tty_driver, i); 660 + tty_port_link_device(&tport[i], tty0tty_tty_driver, i);
680 #endif 661 #endif
681 } 662 }
682 663
683 - retval = tty_register_driver(tty0tty_tty_driver); 664 + retval = tty_register_driver(tty0tty_tty_driver);
684 if (retval) { 665 if (retval) {
685 printk(KERN_ERR "failed to register tty0tty tty driver"); 666 printk(KERN_ERR "failed to register tty0tty tty driver");
686 put_tty_driver(tty0tty_tty_driver); 667 put_tty_driver(tty0tty_tty_driver);
@@ -695,21 +676,20 @@ static void __exit tty0tty_exit(void) @@ -695,21 +676,20 @@ static void __exit tty0tty_exit(void)
695 { 676 {
696 struct tty0tty_serial *tty0tty; 677 struct tty0tty_serial *tty0tty;
697 int i; 678 int i;
698 - 679 +
699 #ifdef SCULL_DEBUG 680 #ifdef SCULL_DEBUG
700 - printk(KERN_DEBUG "%s - \n", __FUNCTION__); 681 + printk(KERN_DEBUG "%s - \n", __FUNCTION__);
701 #endif 682 #endif
702 - for (i = 0; i < 2*pairs; ++i)  
703 - { 683 + for (i = 0; i < 2 * pairs; ++i) {
704 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0) 684 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
705 - tty_port_destroy(&tport[i]); 685 + tty_port_destroy(&tport[i]);
706 #endif 686 #endif
707 tty_unregister_device(tty0tty_tty_driver, i); 687 tty_unregister_device(tty0tty_tty_driver, i);
708 - } 688 + }
709 tty_unregister_driver(tty0tty_tty_driver); 689 tty_unregister_driver(tty0tty_tty_driver);
710 690
711 /* shut down all of the timers and free the memory */ 691 /* shut down all of the timers and free the memory */
712 - for (i = 0; i < 2*pairs; ++i) { 692 + for (i = 0; i < 2 * pairs; ++i) {
713 tty0tty = tty0tty_table[i]; 693 tty0tty = tty0tty_table[i];
714 if (tty0tty) { 694 if (tty0tty) {
715 /* close the port */ 695 /* close the port */