diff options
Diffstat (limited to 'drivers/isdn/hardware/eicon/di_defs.h')
-rw-r--r-- | drivers/isdn/hardware/eicon/di_defs.h | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/di_defs.h b/drivers/isdn/hardware/eicon/di_defs.h new file mode 100644 index 000000000000..4c2f61267df1 --- /dev/null +++ b/drivers/isdn/hardware/eicon/di_defs.h | |||
@@ -0,0 +1,181 @@ | |||
1 | |||
2 | /* | ||
3 | * | ||
4 | Copyright (c) Eicon Networks, 2002. | ||
5 | * | ||
6 | This source file is supplied for the use with | ||
7 | Eicon Networks range of DIVA Server Adapters. | ||
8 | * | ||
9 | Eicon File Revision : 2.1 | ||
10 | * | ||
11 | This program is free software; you can redistribute it and/or modify | ||
12 | it under the terms of the GNU General Public License as published by | ||
13 | the Free Software Foundation; either version 2, or (at your option) | ||
14 | any later version. | ||
15 | * | ||
16 | This program is distributed in the hope that it will be useful, | ||
17 | but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY | ||
18 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
19 | See the GNU General Public License for more details. | ||
20 | * | ||
21 | You should have received a copy of the GNU General Public License | ||
22 | along with this program; if not, write to the Free Software | ||
23 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
24 | * | ||
25 | */ | ||
26 | #ifndef _DI_DEFS_ | ||
27 | #define _DI_DEFS_ | ||
28 | /* typedefs for our data structures */ | ||
29 | typedef struct get_name_s GET_NAME; | ||
30 | /* The entity_s structure is used to pass all | ||
31 | parameters between application and IDI */ | ||
32 | typedef struct entity_s ENTITY; | ||
33 | typedef struct buffers_s BUFFERS; | ||
34 | typedef struct postcall_s POSTCALL; | ||
35 | typedef struct get_para_s GET_PARA; | ||
36 | #define BOARD_NAME_LENGTH 9 | ||
37 | #define IDI_CALL_LINK_T | ||
38 | #define IDI_CALL_ENTITY_T | ||
39 | /* typedef void ( * IDI_CALL)(ENTITY *); */ | ||
40 | /* -------------------------------------------------------- | ||
41 | IDI_CALL | ||
42 | -------------------------------------------------------- */ | ||
43 | typedef void (IDI_CALL_LINK_T * IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *); | ||
44 | typedef struct { | ||
45 | word length; /* length of data/parameter field */ | ||
46 | byte P[270]; /* data/parameter field */ | ||
47 | } DBUFFER; | ||
48 | struct get_name_s { | ||
49 | word command; /* command = 0x0100 */ | ||
50 | byte name[BOARD_NAME_LENGTH]; | ||
51 | }; | ||
52 | struct postcall_s { | ||
53 | word command; /* command = 0x0300 */ | ||
54 | word dummy; /* not used */ | ||
55 | void ( * callback)(void *); /* call back */ | ||
56 | void *context; /* context pointer */ | ||
57 | }; | ||
58 | #define REQ_PARA 0x0600 /* request command line parameters */ | ||
59 | #define REQ_PARA_LEN 1 /* number of data bytes */ | ||
60 | #define L1_STARTUP_DOWN_POS 0 /* '-y' command line parameter in......*/ | ||
61 | #define L1_STARTUP_DOWN_MSK 0x01 /* first byte position (index 0) with value 0x01 */ | ||
62 | struct get_para_s { | ||
63 | word command; /* command = 0x0600 */ | ||
64 | byte len; /* max length of para field in bytes */ | ||
65 | byte para[REQ_PARA_LEN]; /* parameter field */ | ||
66 | }; | ||
67 | struct buffers_s { | ||
68 | word PLength; | ||
69 | byte * P; | ||
70 | }; | ||
71 | struct entity_s { | ||
72 | byte Req; /* pending request */ | ||
73 | byte Rc; /* return code received */ | ||
74 | byte Ind; /* indication received */ | ||
75 | byte ReqCh; /* channel of current Req */ | ||
76 | byte RcCh; /* channel of current Rc */ | ||
77 | byte IndCh; /* channel of current Ind */ | ||
78 | byte Id; /* ID used by this entity */ | ||
79 | byte GlobalId; /* reserved field */ | ||
80 | byte XNum; /* number of X-buffers */ | ||
81 | byte RNum; /* number of R-buffers */ | ||
82 | BUFFERS * X; /* pointer to X-buffer list */ | ||
83 | BUFFERS * R; /* pointer to R-buffer list */ | ||
84 | word RLength; /* length of current R-data */ | ||
85 | DBUFFER * RBuffer; /* buffer of current R-data */ | ||
86 | byte RNR; /* receive not ready flag */ | ||
87 | byte complete; /* receive complete status */ | ||
88 | IDI_CALL callback; | ||
89 | word user[2]; | ||
90 | /* fields used by the driver internally */ | ||
91 | byte No; /* entity number */ | ||
92 | byte reserved2; /* reserved field */ | ||
93 | byte More; /* R/X More flags */ | ||
94 | byte MInd; /* MDATA coding for this ID */ | ||
95 | byte XCurrent; /* current transmit buffer */ | ||
96 | byte RCurrent; /* current receive buffer */ | ||
97 | word XOffset; /* offset in x-buffer */ | ||
98 | word ROffset; /* offset in r-buffer */ | ||
99 | }; | ||
100 | typedef struct { | ||
101 | byte type; | ||
102 | byte channels; | ||
103 | word features; | ||
104 | IDI_CALL request; | ||
105 | } DESCRIPTOR; | ||
106 | /* descriptor type field coding */ | ||
107 | #define IDI_ADAPTER_S 1 | ||
108 | #define IDI_ADAPTER_PR 2 | ||
109 | #define IDI_ADAPTER_DIVA 3 | ||
110 | #define IDI_ADAPTER_MAESTRA 4 | ||
111 | #define IDI_VADAPTER 0x40 | ||
112 | #define IDI_DRIVER 0x80 | ||
113 | #define IDI_DADAPTER 0xfd | ||
114 | #define IDI_DIDDPNP 0xfe | ||
115 | #define IDI_DIMAINT 0xff | ||
116 | /* Hardware IDs ISA PNP */ | ||
117 | #define HW_ID_DIVA_PRO 3 /* same as IDI_ADAPTER_DIVA */ | ||
118 | #define HW_ID_MAESTRA 4 /* same as IDI_ADAPTER_MAESTRA */ | ||
119 | #define HW_ID_PICCOLA 5 | ||
120 | #define HW_ID_DIVA_PRO20 6 | ||
121 | #define HW_ID_DIVA20 7 | ||
122 | #define HW_ID_DIVA_PRO20_U 8 | ||
123 | #define HW_ID_DIVA20_U 9 | ||
124 | #define HW_ID_DIVA30 10 | ||
125 | #define HW_ID_DIVA30_U 11 | ||
126 | /* Hardware IDs PCI */ | ||
127 | #define HW_ID_EICON_PCI 0x1133 | ||
128 | #define HW_ID_SIEMENS_PCI 0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */ | ||
129 | #define HW_ID_PROTTYPE_CORNETN 0x0014 /* SubDevice ID for Siemens Cornet-N cards */ | ||
130 | #define HW_ID_FUJITSU_SIEMENS_PCI 0x110A /* SubVendor ID for Fujitsu Siemens */ | ||
131 | #define HW_ID_GS03_PCI 0x0021 /* SubDevice ID for Fujitsu Siemens ISDN S0 card */ | ||
132 | #define HW_ID_DIVA_PRO20_PCI 0xe001 | ||
133 | #define HW_ID_DIVA20_PCI 0xe002 | ||
134 | #define HW_ID_DIVA_PRO20_PCI_U 0xe003 | ||
135 | #define HW_ID_DIVA20_PCI_U 0xe004 | ||
136 | #define HW_ID_DIVA201_PCI 0xe005 | ||
137 | #define HW_ID_DIVA_CT_ST 0xe006 | ||
138 | #define HW_ID_DIVA_CT_U 0xe007 | ||
139 | #define HW_ID_DIVA_CTL_ST 0xe008 | ||
140 | #define HW_ID_DIVA_CTL_U 0xe009 | ||
141 | #define HW_ID_DIVA_ISDN_V90_PCI 0xe00a | ||
142 | #define HW_ID_DIVA202_PCI_ST 0xe00b | ||
143 | #define HW_ID_DIVA202_PCI_U 0xe00c | ||
144 | #define HW_ID_DIVA_PRO30_PCI 0xe00d | ||
145 | #define HW_ID_MAESTRA_PCI 0xe010 | ||
146 | #define HW_ID_MAESTRAQ_PCI 0xe012 | ||
147 | #define HW_ID_DSRV_Q8M_V2_PCI 0xe013 | ||
148 | #define HW_ID_MAESTRAP_PCI 0xe014 | ||
149 | #define HW_ID_DSRV_P30M_V2_PCI 0xe015 | ||
150 | #define HW_ID_DSRV_VOICE_Q8M_PCI 0xe016 | ||
151 | #define HW_ID_DSRV_VOICE_Q8M_V2_PCI 0xe017 | ||
152 | #define HW_ID_DSRV_B2M_V2_PCI 0xe018 | ||
153 | #define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019 | ||
154 | #define HW_ID_DSRV_B2F_PCI 0xe01a | ||
155 | #define HW_ID_DSRV_VOICE_B2M_V2_PCI 0xe01b | ||
156 | /* Hardware IDs USB */ | ||
157 | #define EICON_USB_VENDOR_ID 0x071D | ||
158 | #define HW_ID_DIVA_USB_REV1 0x1000 | ||
159 | #define HW_ID_DIVA_USB_REV2 0x1003 | ||
160 | #define HW_ID_TELEDAT_SURF_USB_REV2 0x1004 | ||
161 | #define HW_ID_TELEDAT_SURF_USB_REV1 0x2000 | ||
162 | /* -------------------------------------------------------------------------- | ||
163 | Adapter array change notification framework | ||
164 | -------------------------------------------------------------------------- */ | ||
165 | typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)( void IDI_CALL_ENTITY_T * context, DESCRIPTOR* adapter, int removal); | ||
166 | /* -------------------------------------------------------------------------- */ | ||
167 | #define DI_VOICE 0x0 /* obsolete define */ | ||
168 | #define DI_FAX3 0x1 | ||
169 | #define DI_MODEM 0x2 | ||
170 | #define DI_POST 0x4 | ||
171 | #define DI_V110 0x8 | ||
172 | #define DI_V120 0x10 | ||
173 | #define DI_POTS 0x20 | ||
174 | #define DI_CODEC 0x40 | ||
175 | #define DI_MANAGE 0x80 | ||
176 | #define DI_V_42 0x0100 | ||
177 | #define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */ | ||
178 | #define DI_AT_PARSER 0x0400 /* Build-in AT Parser in the L2 */ | ||
179 | #define DI_VOICE_OVER_IP 0x0800 /* Voice over IP support */ | ||
180 | typedef void (IDI_CALL_LINK_T* _IDI_CALL)(void*, ENTITY*); | ||
181 | #endif | ||