Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.17-rc6 202 lines 5.0 kB view raw
1 2/* 3 * sx.h 4 * 5 * Copyright (C) 1998/1999 R.E.Wolff@BitWizard.nl 6 * 7 * SX serial driver. 8 * -- Supports SI, XIO and SX host cards. 9 * -- Supports TAs, MTAs and SXDCs. 10 * 11 * Version 1.3 -- March, 1999. 12 * 13 */ 14 15#define SX_NBOARDS 4 16#define SX_PORTSPERBOARD 32 17#define SX_NPORTS (SX_NBOARDS * SX_PORTSPERBOARD) 18 19#ifdef __KERNEL__ 20 21#define SX_MAGIC 0x12345678 22 23struct sx_port { 24 struct gs_port gs; 25 struct wait_queue *shutdown_wait; 26 int ch_base; 27 int c_dcd; 28 struct sx_board *board; 29 int line; 30 long locks; 31}; 32 33struct sx_board { 34 int magic; 35 void __iomem *base; 36 void __iomem *base2; 37 unsigned long hw_base; 38 int eisa_base; 39 int port_base; /* Number of the first port */ 40 struct sx_port *ports; 41 int nports; 42 int flags; 43 int irq; 44 int poll; 45 int ta_type; 46 struct timer_list timer; 47 long locks; 48}; 49 50struct vpd_prom { 51 unsigned short id; 52 char hwrev; 53 char hwass; 54 int uniqid; 55 char myear; 56 char mweek; 57 char hw_feature[5]; 58 char oem_id; 59 char identifier[16]; 60}; 61 62#ifndef MOD_RS232DB25MALE 63#define MOD_RS232DB25MALE 0x0a 64#endif 65 66#define SI_ISA_BOARD 0x00000001 67#define SX_ISA_BOARD 0x00000002 68#define SX_PCI_BOARD 0x00000004 69#define SX_CFPCI_BOARD 0x00000008 70#define SX_CFISA_BOARD 0x00000010 71#define SI_EISA_BOARD 0x00000020 72#define SI1_ISA_BOARD 0x00000040 73 74#define SX_BOARD_PRESENT 0x00001000 75#define SX_BOARD_INITIALIZED 0x00002000 76#define SX_IRQ_ALLOCATED 0x00004000 77 78#define SX_BOARD_TYPE 0x000000ff 79 80#define IS_SX_BOARD(board) (board->flags & (SX_PCI_BOARD | SX_CFPCI_BOARD | \ 81 SX_ISA_BOARD | SX_CFISA_BOARD)) 82 83#define IS_SI_BOARD(board) (board->flags & SI_ISA_BOARD) 84#define IS_SI1_BOARD(board) (board->flags & SI1_ISA_BOARD) 85 86#define IS_EISA_BOARD(board) (board->flags & SI_EISA_BOARD) 87 88#define IS_CF_BOARD(board) (board->flags & (SX_CFISA_BOARD | SX_CFPCI_BOARD)) 89 90#define SERIAL_TYPE_NORMAL 1 91 92/* The SI processor clock is required to calculate the cc_int_count register 93 value for the SI cards. */ 94#define SI_PROCESSOR_CLOCK 25000000 95 96 97/* port flags */ 98/* Make sure these don't clash with gs flags or async flags */ 99#define SX_RX_THROTTLE 0x0000001 100 101 102 103#define SX_PORT_TRANSMIT_LOCK 0 104#define SX_BOARD_INTR_LOCK 0 105 106 107 108/* Debug flags. Add these together to get more debug info. */ 109 110#define SX_DEBUG_OPEN 0x00000001 111#define SX_DEBUG_SETTING 0x00000002 112#define SX_DEBUG_FLOW 0x00000004 113#define SX_DEBUG_MODEMSIGNALS 0x00000008 114#define SX_DEBUG_TERMIOS 0x00000010 115#define SX_DEBUG_TRANSMIT 0x00000020 116#define SX_DEBUG_RECEIVE 0x00000040 117#define SX_DEBUG_INTERRUPTS 0x00000080 118#define SX_DEBUG_PROBE 0x00000100 119#define SX_DEBUG_INIT 0x00000200 120#define SX_DEBUG_CLEANUP 0x00000400 121#define SX_DEBUG_CLOSE 0x00000800 122#define SX_DEBUG_FIRMWARE 0x00001000 123#define SX_DEBUG_MEMTEST 0x00002000 124 125#define SX_DEBUG_ALL 0xffffffff 126 127 128#define O_OTHER(tty) \ 129 ((O_OLCUC(tty)) ||\ 130 (O_ONLCR(tty)) ||\ 131 (O_OCRNL(tty)) ||\ 132 (O_ONOCR(tty)) ||\ 133 (O_ONLRET(tty)) ||\ 134 (O_OFILL(tty)) ||\ 135 (O_OFDEL(tty)) ||\ 136 (O_NLDLY(tty)) ||\ 137 (O_CRDLY(tty)) ||\ 138 (O_TABDLY(tty)) ||\ 139 (O_BSDLY(tty)) ||\ 140 (O_VTDLY(tty)) ||\ 141 (O_FFDLY(tty))) 142 143/* Same for input. */ 144#define I_OTHER(tty) \ 145 ((I_INLCR(tty)) ||\ 146 (I_IGNCR(tty)) ||\ 147 (I_ICRNL(tty)) ||\ 148 (I_IUCLC(tty)) ||\ 149 (L_ISIG(tty))) 150 151#define MOD_TA ( TA>>4) 152#define MOD_MTA (MTA_CD1400>>4) 153#define MOD_SXDC ( SXDC>>4) 154 155 156/* We copy the download code over to the card in chunks of ... bytes */ 157#define SX_CHUNK_SIZE 128 158 159#endif /* __KERNEL__ */ 160 161 162 163/* Specialix document 6210046-11 page 3 */ 164#define SPX(X) (('S'<<24) | ('P' << 16) | (X)) 165 166/* Specialix-Linux specific IOCTLS. */ 167#define SPXL(X) (SPX(('L' << 8) | (X))) 168 169 170#define SXIO_SET_BOARD SPXL(0x01) 171#define SXIO_GET_TYPE SPXL(0x02) 172#define SXIO_DOWNLOAD SPXL(0x03) 173#define SXIO_INIT SPXL(0x04) 174#define SXIO_SETDEBUG SPXL(0x05) 175#define SXIO_GETDEBUG SPXL(0x06) 176#define SXIO_DO_RAMTEST SPXL(0x07) 177#define SXIO_SETGSDEBUG SPXL(0x08) 178#define SXIO_GETGSDEBUG SPXL(0x09) 179#define SXIO_GETNPORTS SPXL(0x0a) 180 181 182#ifndef SXCTL_MISC_MINOR 183/* Allow others to gather this into "major.h" or something like that */ 184#define SXCTL_MISC_MINOR 167 185#endif 186 187#ifndef SX_NORMAL_MAJOR 188/* This allows overriding on the compiler commandline, or in a "major.h" 189 include or something like that */ 190#define SX_NORMAL_MAJOR 32 191#define SX_CALLOUT_MAJOR 33 192#endif 193 194 195#define SX_TYPE_SX 0x01 196#define SX_TYPE_SI 0x02 197#define SX_TYPE_CF 0x03 198 199 200#define WINDOW_LEN(board) (IS_CF_BOARD(board)?0x20000:SX_WINDOW_LEN) 201/* Need a #define for ^^^^^^^ !!! */ 202