Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
isdn
hardware
eicon
dsp_defs.h
Go to the documentation of this file.
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 DSP_DEFS_H_
27
#define DSP_DEFS_H_
28
#include "
dspdids.h
"
29
/*---------------------------------------------------------------------------*/
30
#define dsp_download_reserve_space(fp, length)
31
/*****************************************************************************/
32
/*
33
* OS file access abstraction layer
34
*
35
* I/O functions returns -1 on error, 0 on EOF
36
*/
37
struct
_OsFileHandle_
;
38
typedef
long
(*
OsFileIo
)(
struct
_OsFileHandle_
*
handle
,
39
void
*
buffer
,
40
long
size
);
41
typedef
long
(*
OsFileSeek
)(
struct
_OsFileHandle_
*
handle
,
42
long
position,
43
int
mode
);
44
typedef
long
(*
OsCardLoad
)(
struct
_OsFileHandle_
*
handle
,
45
long
length
,
46
void
**
addr
);
47
typedef
struct
_OsFileHandle_
48
{
void
*
sysFileDesc
;
49
unsigned
long
sysFileSize
;
50
OsFileIo
sysFileRead
;
51
OsFileSeek
sysFileSeek
;
52
void
*
sysLoadDesc
;
53
OsCardLoad
sysCardLoad
;
54
}
OsFileHandle
;
55
extern
OsFileHandle
*
OsOpenFile
(
char
*path_name);
56
extern
void
OsCloseFile
(
OsFileHandle
*
fp
);
57
/*****************************************************************************/
58
#define DSP_TELINDUS_FILE "dspdload.bin"
59
/* special DSP file for BRI cards for Qsig and CornetN because of missing memory */
60
#define DSP_QSIG_TELINDUS_FILE "dspdqsig.bin"
61
#define DSP_MDM_TELINDUS_FILE "dspdvmdm.bin"
62
#define DSP_FAX_TELINDUS_FILE "dspdvfax.bin"
63
#define DSP_DIRECTORY_ENTRIES 64
64
#define DSP_MEMORY_TYPE_EXTERNAL_DM 0
65
#define DSP_MEMORY_TYPE_EXTERNAL_PM 1
66
#define DSP_MEMORY_TYPE_INTERNAL_DM 2
67
#define DSP_MEMORY_TYPE_INTERNAL_PM 3
68
#define DSP_DOWNLOAD_FLAG_BOOTABLE 0x0001
69
#define DSP_DOWNLOAD_FLAG_2181 0x0002
70
#define DSP_DOWNLOAD_FLAG_TIMECRITICAL 0x0004
71
#define DSP_DOWNLOAD_FLAG_COMPAND 0x0008
72
#define DSP_MEMORY_BLOCK_COUNT 16
73
#define DSP_SEGMENT_PM_FLAG 0x0001
74
#define DSP_SEGMENT_SHARED_FLAG 0x0002
75
#define DSP_SEGMENT_EXTERNAL_DM DSP_MEMORY_TYPE_EXTERNAL_DM
76
#define DSP_SEGMENT_EXTERNAL_PM DSP_MEMORY_TYPE_EXTERNAL_PM
77
#define DSP_SEGMENT_INTERNAL_DM DSP_MEMORY_TYPE_INTERNAL_DM
78
#define DSP_SEGMENT_INTERNAL_PM DSP_MEMORY_TYPE_INTERNAL_PM
79
#define DSP_SEGMENT_FIRST_RELOCATABLE 4
80
#define DSP_DATA_BLOCK_PM_FLAG 0x0001
81
#define DSP_DATA_BLOCK_DWORD_FLAG 0x0002
82
#define DSP_DATA_BLOCK_RESOLVE_FLAG 0x0004
83
#define DSP_RELOC_NONE 0x00
84
#define DSP_RELOC_SEGMENT_MASK 0x3f
85
#define DSP_RELOC_TYPE_MASK 0xc0
86
#define DSP_RELOC_TYPE_0 0x00
/* relocation of address in DM word / high part of PM word */
87
#define DSP_RELOC_TYPE_1 0x40
/* relocation of address in low part of PM data word */
88
#define DSP_RELOC_TYPE_2 0x80
/* relocation of address in standard command */
89
#define DSP_RELOC_TYPE_3 0xc0
/* relocation of address in call/jump on flag in */
90
#define DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE 48
91
#define DSP_COMBIFILE_FORMAT_VERSION_BCD 0x0100
92
#define DSP_FILE_FORMAT_IDENTIFICATION_SIZE 48
93
#define DSP_FILE_FORMAT_VERSION_BCD 0x0100
94
typedef
struct
tag_dsp_combifile_header
95
{
96
char
format_identification
[
DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE
];
97
word
format_version_bcd
;
98
word
header_size
;
99
word
combifile_description_size
;
100
word
directory_entries
;
101
word
directory_size
;
102
word
download_count
;
103
word
usage_mask_size
;
104
}
t_dsp_combifile_header
;
105
typedef
struct
tag_dsp_combifile_directory_entry
106
{
107
word
card_type_number
;
108
word
file_set_number
;
109
}
t_dsp_combifile_directory_entry
;
110
typedef
struct
tag_dsp_file_header
111
{
112
char
format_identification
[
DSP_FILE_FORMAT_IDENTIFICATION_SIZE
];
113
word
format_version_bcd
;
114
word
download_id
;
115
word
download_flags
;
116
word
required_processing_power
;
117
word
interface_channel_count
;
118
word
header_size
;
119
word
download_description_size
;
120
word
memory_block_table_size
;
121
word
memory_block_count
;
122
word
segment_table_size
;
123
word
segment_count
;
124
word
symbol_table_size
;
125
word
symbol_count
;
126
word
total_data_size_dm
;
127
word
data_block_count_dm
;
128
word
total_data_size_pm
;
129
word
data_block_count_pm
;
130
}
t_dsp_file_header
;
131
typedef
struct
tag_dsp_memory_block_desc
132
{
133
word
alias_memory_block
;
134
word
memory_type
;
135
word
address
;
136
word
size
;
/* DSP words */
137
}
t_dsp_memory_block_desc
;
138
typedef
struct
tag_dsp_segment_desc
139
{
140
word
memory_block
;
141
word
attributes
;
142
word
base
;
143
word
size
;
144
word
alignment
;
/* ==0 -> no other legal start address than base */
145
}
t_dsp_segment_desc
;
146
typedef
struct
tag_dsp_symbol_desc
147
{
148
word
symbol_id
;
149
word
segment
;
150
word
offset
;
151
word
size
;
/* DSP words */
152
}
t_dsp_symbol_desc
;
153
typedef
struct
tag_dsp_data_block_header
154
{
155
word
attributes
;
156
word
segment
;
157
word
offset
;
158
word
size
;
/* DSP words */
159
}
t_dsp_data_block_header
;
160
typedef
struct
tag_dsp_download_desc
161
{
162
word
download_id
;
163
word
download_flags
;
164
word
required_processing_power
;
165
word
interface_channel_count
;
166
word
excess_header_size
;
167
word
memory_block_count
;
168
word
segment_count
;
169
word
symbol_count
;
170
word
data_block_count_dm
;
171
word
data_block_count_pm
;
172
byte
*
p_excess_header_data
;
173
char
*
p_download_description
;
174
t_dsp_memory_block_desc
*
p_memory_block_table
;
175
t_dsp_segment_desc
*
p_segment_table
;
176
t_dsp_symbol_desc
*
p_symbol_table
;
177
word
*
p_data_blocks_dm
;
178
word
*
p_data_blocks_pm
;
179
}
t_dsp_desc
;
180
typedef
struct
tag_dsp_portable_download_desc
/* be sure to keep native alignment for MAESTRA's */
181
{
182
word
download_id
;
183
word
download_flags
;
184
word
required_processing_power
;
185
word
interface_channel_count
;
186
word
excess_header_size
;
187
word
memory_block_count
;
188
word
segment_count
;
189
word
symbol_count
;
190
word
data_block_count_dm
;
191
word
data_block_count_pm
;
192
dword
p_excess_header_data
;
193
dword
p_download_description
;
194
dword
p_memory_block_table
;
195
dword
p_segment_table
;
196
dword
p_symbol_table
;
197
dword
p_data_blocks_dm
;
198
dword
p_data_blocks_pm
;
199
}
t_dsp_portable_desc
;
200
#define DSP_DOWNLOAD_INDEX_KERNEL 0
201
#define DSP30TX_DOWNLOAD_INDEX_KERNEL 1
202
#define DSP30RX_DOWNLOAD_INDEX_KERNEL 2
203
#define DSP_MAX_DOWNLOAD_COUNT 64
204
#define DSP_DOWNLOAD_MAX_SEGMENTS 16
205
#define DSP_UDATA_REQUEST_RECONFIGURE 0
206
/*
207
parameters:
208
<word> reconfigure delay (in 8kHz samples)
209
<word> reconfigure code
210
<byte> reconfigure hdlc preamble flags
211
*/
212
#define DSP_RECONFIGURE_TX_FLAG 0x8000
213
#define DSP_RECONFIGURE_SHORT_TRAIN_FLAG 0x4000
214
#define DSP_RECONFIGURE_ECHO_PROTECT_FLAG 0x2000
215
#define DSP_RECONFIGURE_HDLC_FLAG 0x1000
216
#define DSP_RECONFIGURE_SYNC_FLAG 0x0800
217
#define DSP_RECONFIGURE_PROTOCOL_MASK 0x00ff
218
#define DSP_RECONFIGURE_IDLE 0
219
#define DSP_RECONFIGURE_V25 1
220
#define DSP_RECONFIGURE_V21_CH2 2
221
#define DSP_RECONFIGURE_V27_2400 3
222
#define DSP_RECONFIGURE_V27_4800 4
223
#define DSP_RECONFIGURE_V29_7200 5
224
#define DSP_RECONFIGURE_V29_9600 6
225
#define DSP_RECONFIGURE_V33_12000 7
226
#define DSP_RECONFIGURE_V33_14400 8
227
#define DSP_RECONFIGURE_V17_7200 9
228
#define DSP_RECONFIGURE_V17_9600 10
229
#define DSP_RECONFIGURE_V17_12000 11
230
#define DSP_RECONFIGURE_V17_14400 12
231
/*
232
data indications if transparent framer
233
<byte> data 0
234
<byte> data 1
235
...
236
data indications if HDLC framer
237
<byte> data 0
238
<byte> data 1
239
...
240
<byte> CRC 0
241
<byte> CRC 1
242
<byte> preamble flags
243
*/
244
#define DSP_UDATA_INDICATION_SYNC 0
245
/*
246
returns:
247
<word> time of sync (sampled from counter at 8kHz)
248
*/
249
#define DSP_UDATA_INDICATION_DCD_OFF 1
250
/*
251
returns:
252
<word> time of DCD off (sampled from counter at 8kHz)
253
*/
254
#define DSP_UDATA_INDICATION_DCD_ON 2
255
/*
256
returns:
257
<word> time of DCD on (sampled from counter at 8kHz)
258
<byte> connected norm
259
<word> connected options
260
<dword> connected speed (bit/s)
261
*/
262
#define DSP_UDATA_INDICATION_CTS_OFF 3
263
/*
264
returns:
265
<word> time of CTS off (sampled from counter at 8kHz)
266
*/
267
#define DSP_UDATA_INDICATION_CTS_ON 4
268
/*
269
returns:
270
<word> time of CTS on (sampled from counter at 8kHz)
271
<byte> connected norm
272
<word> connected options
273
<dword> connected speed (bit/s)
274
*/
275
#define DSP_CONNECTED_NORM_UNSPECIFIED 0
276
#define DSP_CONNECTED_NORM_V21 1
277
#define DSP_CONNECTED_NORM_V23 2
278
#define DSP_CONNECTED_NORM_V22 3
279
#define DSP_CONNECTED_NORM_V22_BIS 4
280
#define DSP_CONNECTED_NORM_V32_BIS 5
281
#define DSP_CONNECTED_NORM_V34 6
282
#define DSP_CONNECTED_NORM_V8 7
283
#define DSP_CONNECTED_NORM_BELL_212A 8
284
#define DSP_CONNECTED_NORM_BELL_103 9
285
#define DSP_CONNECTED_NORM_V29_LEASED_LINE 10
286
#define DSP_CONNECTED_NORM_V33_LEASED_LINE 11
287
#define DSP_CONNECTED_NORM_TFAST 12
288
#define DSP_CONNECTED_NORM_V21_CH2 13
289
#define DSP_CONNECTED_NORM_V27_TER 14
290
#define DSP_CONNECTED_NORM_V29 15
291
#define DSP_CONNECTED_NORM_V33 16
292
#define DSP_CONNECTED_NORM_V17 17
293
#define DSP_CONNECTED_OPTION_TRELLIS 0x0001
294
/*---------------------------------------------------------------------------*/
295
extern
char
*
dsp_read_file
(
OsFileHandle
*
fp
,
296
word
card_type_number,
297
word
*p_dsp_download_count,
298
t_dsp_desc
*p_dsp_download_table,
299
t_dsp_portable_desc
*p_dsp_portable_download_table);
300
/*---------------------------------------------------------------------------*/
301
#endif
/* DSP_DEFS_H_ */
Generated on Thu Jan 10 2013 13:41:25 for Linux Kernel by
1.8.2