Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #define FEPCODESEG 0x0200L #define FEPCODE 0x2000L #define BIOSCODE 0xf800L #define MISCGLOBAL 0x0C00L #define NPORT 0x0C22L #define MBOX 0x0C40L #define PORTBASE 0x0C90L #define FEPCLR 0x00 #define FEPMEM 0x02 #define FEPRST 0x04 #define FEPINT 0x08 #define FEPMASK 0x0e #define FEPWIN 0x80 /* Maximum Number of Boards supported */ #define MAX_DIGI_BOARDS 4 #define PCXX_NUM_TYPES 4 #define PCXI 0 #define PCXE 1 #define PCXEVE 2 #define PCXEM 3 static char *board_desc[] = { "PC/Xi", "PC/Xe", "PC/Xeve", "PC/Xem", }; static char *board_mem[] = { "64k", "64k", "8k", "32k", }; #define STARTC 021 #define STOPC 023 #define IAIXON 0x2000 struct board_info { unchar status; unchar type; unchar altpin; ushort numports; ushort port; ulong membase; ulong memsize; ushort first_minor; void *region; }; #define TXSTOPPED 0x01 #define LOWWAIT 0x02 #define EMPTYWAIT 0x04 #define RXSTOPPED 0x08 #define TXBUSY 0x10 #define DISABLED 0 #define ENABLED 1 #define OFF 0 #define ON 1 #define FEPTIMEOUT 200000 #define SERIAL_TYPE_NORMAL 1 #define SERIAL_TYPE_CALLOUT 2 #define PCXE_EVENT_HANGUP 1 #define PCXX_MAGIC 0x5c6df104L struct channel { /* --------- Board/channel information ---------- */ long magic; unchar boardnum; unchar channelnum; uint dev; long session; long pgrp; struct tty_struct *tty; struct board_info *board; volatile struct board_chan *brdchan; volatile struct global_data *mailbox; int asyncflags; int count; int blocked_open; int close_delay; int event; wait_queue_head_t open_wait; wait_queue_head_t close_wait; struct tq_struct tqueue; /* ------------ Async control data ------------- */ unchar modemfake; /* Modem values to be forced */ unchar modem; /* Force values */ ulong statusflags; unchar omodem; /* FEP output modem status */ unchar imodem; /* FEP input modem status */ unchar hflow; unchar dsr; unchar dcd; unchar stopc; unchar startc; unchar stopca; unchar startca; unchar fepstopc; unchar fepstartc; unchar fepstopca; unchar fepstartca; ushort fepiflag; ushort fepcflag; ushort fepoflag; /* ---------- Transmit/receive system ---------- */ unchar txwin; unchar rxwin; ushort txbufsize; ushort rxbufsize; unchar *txptr; unchar *rxptr; unchar *tmp_buf; /* Temp buffer */ struct semaphore tmp_buf_sem; /* ---- Termios data ---- */ ulong c_iflag; ulong c_cflag; ulong c_lflag; ulong c_oflag; struct termios normal_termios; struct termios callout_termios; struct digi_struct digiext; ulong dummy[8]; }; |