1 /*
2  * (C) 2000 R.E.Wolff@BitWizard.nl
3  *
4  *      This program is free software; you can redistribute it and/or modify
5  *      it under the terms of the GNU General Public License as published by
6  *      the Free Software Foundation; either version 2 of the License, or
7  *      (at your option) any later version.
8  *
9  *      This program is distributed in the hope that it will be useful,
10  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *      GNU General Public License for more details.
13  *
14  *      You should have received a copy of the GNU General Public License
15  *      along with this program; if not, write to the Free Software
16  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17  */
18 
19 #include <asm/hardirq.h>
20 
21 
22 #define disable(oldspl) save_flags (oldspl)
23 #define restore(oldspl) restore_flags (oldspl)
24 
25 #define sysbrk(x) kmalloc ((x),in_interrupt()? GFP_ATOMIC : GFP_KERNEL)
26 #define sysfree(p,size) kfree ((p))
27 
28 #define WBYTE(p,v) writeb(v, &p)
29 #define RBYTE(p)   readb (&p)
30 #define WWORD(p,v) writew(v, &p)
31 #define RWORD(p)   readw(&p)
32 #define WINDW(p,v) writew(v, p)
33 #define RINDW(p)   readw(p)
34 
35 #define DEBUG_ALL
36 
37 #define cprintf printk
38 
39 #ifdef __KERNEL__
40 #define INKERNEL
41 #endif
42 
43 struct ttystatics {
44   struct termios tm;
45 };
46 
47 #define bzero(d, n)         memset((d), 0, (n))
48 #define bcopy(src, dest, n) memcpy ((dest), (src), (n))
49 
50 #define SEM_SIGIGNORE 0x1234
51 
52 #ifdef DEBUG_SEM
53 #define swait(a,b)      printk ("waiting:    " __FILE__ " line %d\n", __LINE__)
54 #define ssignal(sem)    printk ("signalling: " __FILE__ " line %d\n", __LINE__)
55 
56 #define sreset(sem)     printk ("sreset:     " __FILE__ "\n")
57 #define sem_init(sem,v) printk ("sreset:     " __FILE__ "\n")
58 #endif
59 
60 
61 #define getpid()    (current->pid)
62 
63 #define QSIZE SERIAL_XMIT_SIZE
64 
65 #define pseterr(errno) return (- errno)
66 
67 #define V_CBAUD CBAUD
68 
69 /* For one reason or another rioboot.c uses delay instead of RIODelay. */
70 #define delay(x,y) RIODelay(NULL, y)
71 
72 extern int rio_debug;
73 
74 #define RIO_DEBUG_INIT         0x000001
75 #define RIO_DEBUG_BOOT         0x000002
76 #define RIO_DEBUG_CMD          0x000004
77 #define RIO_DEBUG_CTRL         0x000008
78 #define RIO_DEBUG_INTR         0x000010
79 #define RIO_DEBUG_PARAM        0x000020
80 #define RIO_DEBUG_ROUTE        0x000040
81 #define RIO_DEBUG_TABLE        0x000080
82 #define RIO_DEBUG_TTY          0x000100
83 #define RIO_DEBUG_FLOW         0x000200
84 #define RIO_DEBUG_MODEMSIGNALS 0x000400
85 #define RIO_DEBUG_PROBE        0x000800
86 #define RIO_DEBUG_CLEANUP      0x001000
87 #define RIO_DEBUG_IFLOW        0x002000
88 #define RIO_DEBUG_PFE          0x004000
89 #define RIO_DEBUG_REC          0x008000
90 #define RIO_DEBUG_SPINLOCK     0x010000
91 #define RIO_DEBUG_DELAY        0x020000
92 #define RIO_DEBUG_MOD_COUNT    0x040000
93 
94 /* Copied over from riowinif.h . This is ugly. The winif file declares
95 also much other stuff which is incompatible with the headers from
96 the older driver. The older driver includes "brates.h" which shadows
97 the definitions from Linux, and is incompatible... */
98 
99 /* RxBaud and TxBaud definitions... */
100 #define	RIO_B0			0x00			/* RTS / DTR signals dropped */
101 #define	RIO_B50			0x01			/* 50 baud */
102 #define	RIO_B75			0x02			/* 75 baud */
103 #define	RIO_B110		0x03			/* 110 baud */
104 #define	RIO_B134		0x04			/* 134.5 baud */
105 #define	RIO_B150		0x05			/* 150 baud */
106 #define	RIO_B200		0x06			/* 200 baud */
107 #define	RIO_B300		0x07			/* 300 baud */
108 #define	RIO_B600		0x08			/* 600 baud */
109 #define	RIO_B1200		0x09			/* 1200 baud */
110 #define	RIO_B1800		0x0A			/* 1800 baud */
111 #define	RIO_B2400		0x0B			/* 2400 baud */
112 #define	RIO_B4800		0x0C			/* 4800 baud */
113 #define	RIO_B9600		0x0D			/* 9600 baud */
114 #define	RIO_B19200		0x0E			/* 19200 baud */
115 #define	RIO_B38400		0x0F			/* 38400 baud */
116 #define	RIO_B56000		0x10			/* 56000 baud */
117 #define	RIO_B57600		0x11			/* 57600 baud */
118 #define	RIO_B64000		0x12			/* 64000 baud */
119 #define	RIO_B115200		0x13			/* 115200 baud */
120 #define	RIO_B2000		0x14			/* 2000 baud */
121 
122 
123