This source file includes following definitions.
- init
- rs_init
- rs_write
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <linux/tty.h>
17 #include <linux/sched.h>
18 #include <asm/system.h>
19 #include <asm/io.h>
20
21 #define WAKEUP_CHARS (TTY_BUF_SIZE/4)
22
23 extern void rs1_interrupt(void);
24 extern void rs2_interrupt(void);
25
26 static void init(int port)
27 {
28 outb_p(0x80,port+3);
29 outb_p(0x30,port);
30 outb_p(0x00,port+1);
31 outb_p(0x03,port+3);
32 outb_p(0x0b,port+4);
33 outb_p(0x0d,port+1);
34 (void)inb(port);
35 }
36
37 void rs_init(void)
38 {
39 set_intr_gate(0x24,rs1_interrupt);
40 set_intr_gate(0x23,rs2_interrupt);
41 init(tty_table[1].read_q.data);
42 init(tty_table[2].read_q.data);
43 outb(inb_p(0x21)&0xE7,0x21);
44 }
45
46
47
48
49
50
51
52
53 void rs_write(struct tty_struct * tty)
54 {
55 cli();
56 if (!EMPTY(tty->write_q))
57 outb(inb_p(tty->write_q.data+1)|0x02,tty->write_q.data+1);
58 sti();
59 }