| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 <linux/interrupt.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 |  |