📄 dsp_defs.h
字号:
/* * Copyright (c) Eicon Networks, 2002. * This source file is supplied for the use with Eicon Networks range of DIVA Server Adapters. * Eicon File Revision : 2.1 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#ifndef DSP_DEFS_H_ #define DSP_DEFS_H_#include "dspdids.h"/*---------------------------------------------------------------------------*/#define dsp_download_reserve_space(fp,length)/*****************************************************************************//* * OS file access abstraction layer * * I/O functions returns -1 on error, 0 on EOF */#define OS_SEEK_SET 0#define OS_SEEK_CUR 1#define OS_SEEK_END 2struct _OsFileHandle_;typedef long ( * OsFileIo) (struct _OsFileHandle_ *handle, void *buffer, long size) ;typedef long ( * OsFileSeek)(struct _OsFileHandle_ *handle, long position, int mode) ;typedef long ( * OsCardLoad)(struct _OsFileHandle_ *handle, long length, void * *addr) ;typedef struct _OsFileHandle_{ void *sysFileDesc ; unsigned long sysFileSize ; OsFileIo sysFileRead ; OsFileSeek sysFileSeek ; void *sysLoadDesc ; OsCardLoad sysCardLoad ;} OsFileHandle ;extern OsFileHandle *OsOpenFile (char *path_name) ;extern void OsCloseFile (OsFileHandle *fp) ;/*****************************************************************************/#define DSP_TELINDUS_FILE "dspdload.bin"/* special DSP file for BRI cards for Qsig and CornetN because of missing memory */#define DSP_QSIG_TELINDUS_FILE "dspdqsig.bin"#define DSP_MDM_TELINDUS_FILE "dspdvmdm.bin"#define DSP_FAX_TELINDUS_FILE "dspdvfax.bin"#define DSP_DIRECTORY_ENTRIES 64#define DSP_MEMORY_TYPE_EXTERNAL_DM 0#define DSP_MEMORY_TYPE_EXTERNAL_PM 1#define DSP_MEMORY_TYPE_INTERNAL_DM 2#define DSP_MEMORY_TYPE_INTERNAL_PM 3#define DSP_DOWNLOAD_FLAG_BOOTABLE 0x0001#define DSP_DOWNLOAD_FLAG_2181 0x0002#define DSP_DOWNLOAD_FLAG_TIMECRITICAL 0x0004#define DSP_DOWNLOAD_FLAG_COMPAND 0x0008#define DSP_MEMORY_BLOCK_COUNT 16#define DSP_SEGMENT_PM_FLAG 0x0001#define DSP_SEGMENT_SHARED_FLAG 0x0002#define DSP_SEGMENT_EXTERNAL_DM DSP_MEMORY_TYPE_EXTERNAL_DM#define DSP_SEGMENT_EXTERNAL_PM DSP_MEMORY_TYPE_EXTERNAL_PM#define DSP_SEGMENT_INTERNAL_DM DSP_MEMORY_TYPE_INTERNAL_DM#define DSP_SEGMENT_INTERNAL_PM DSP_MEMORY_TYPE_INTERNAL_PM#define DSP_SEGMENT_FIRST_RELOCATABLE 4#define DSP_DATA_BLOCK_PM_FLAG 0x0001#define DSP_DATA_BLOCK_DWORD_FLAG 0x0002#define DSP_DATA_BLOCK_RESOLVE_FLAG 0x0004#define DSP_RELOC_NONE 0x00#define DSP_RELOC_SEGMENT_MASK 0x3f#define DSP_RELOC_TYPE_MASK 0xc0#define DSP_RELOC_TYPE_0 0x00 /* relocation of address in DM word / high part of PM word */#define DSP_RELOC_TYPE_1 0x40 /* relocation of address in low part of PM data word */#define DSP_RELOC_TYPE_2 0x80 /* relocation of address in standard command */#define DSP_RELOC_TYPE_3 0xc0 /* relocation of address in call/jump on flag in */#define DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE 48#define DSP_COMBIFILE_FORMAT_VERSION_BCD 0x0100#define DSP_FILE_FORMAT_IDENTIFICATION_SIZE 48#define DSP_FILE_FORMAT_VERSION_BCD 0x0100typedef struct tag_dsp_combifile_header{ char format_identification[DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE]; word format_version_bcd; word header_size; word combifile_description_size; word directory_entries; word directory_size; word download_count; word usage_mask_size;} t_dsp_combifile_header;typedef struct tag_dsp_combifile_directory_entry{ word card_type_number; word file_set_number;} t_dsp_combifile_directory_entry;typedef struct tag_dsp_file_header{ char format_identification[DSP_FILE_FORMAT_IDENTIFICATION_SIZE]; word format_version_bcd; word download_id; word download_flags; word required_processing_power; word interface_channel_count; word header_size; word download_description_size; word memory_block_table_size; word memory_block_count; word segment_table_size; word segment_count; word symbol_table_size; word symbol_count; word total_data_size_dm; word data_block_count_dm; word total_data_size_pm; word data_block_count_pm;} t_dsp_file_header;typedef struct tag_dsp_memory_block_desc{ word alias_memory_block; word memory_type; word address; word size; /* DSP words */} t_dsp_memory_block_desc;typedef struct tag_dsp_segment_desc{ word memory_block; word attributes; word base; word size; word alignment; /* ==0 -> no other legal start address than base */} t_dsp_segment_desc;typedef struct tag_dsp_symbol_desc{ word symbol_id; word segment; word offset; word size; /* DSP words */} t_dsp_symbol_desc;typedef struct tag_dsp_data_block_header{ word attributes; word segment; word offset; word size; /* DSP words */} t_dsp_data_block_header;typedef struct tag_dsp_download_desc{ word download_id; word download_flags; word required_processing_power; word interface_channel_count; word excess_header_size; word memory_block_count; word segment_count; word symbol_count; word data_block_count_dm; word data_block_count_pm; byte * p_excess_header_data; char * p_download_description; t_dsp_memory_block_desc *p_memory_block_table; t_dsp_segment_desc *p_segment_table; t_dsp_symbol_desc *p_symbol_table; word * p_data_blocks_dm; word * p_data_blocks_pm;} t_dsp_desc;typedef struct tag_dsp_portable_download_desc /* be sure to keep native alignment for MAESTRA's */{ word download_id; word download_flags; word required_processing_power; word interface_channel_count; word excess_header_size; word memory_block_count; word segment_count; word symbol_count; word data_block_count_dm; word data_block_count_pm; dword p_excess_header_data; dword p_download_description; dword p_memory_block_table; dword p_segment_table; dword p_symbol_table; dword p_data_blocks_dm; dword p_data_blocks_pm;} t_dsp_portable_desc;#define DSP_DOWNLOAD_INDEX_KERNEL 0#define DSP30TX_DOWNLOAD_INDEX_KERNEL 1#define DSP30RX_DOWNLOAD_INDEX_KERNEL 2#define DSP_MAX_DOWNLOAD_COUNT 64#define DSP_DOWNLOAD_MAX_SEGMENTS 16#define DSP_UDATA_REQUEST_RECONFIGURE 0/*parameters: <word> reconfigure delay (in 8kHz samples) <word> reconfigure code <byte> reconfigure hdlc preamble flags*/#define DSP_RECONFIGURE_TX_FLAG 0x8000#define DSP_RECONFIGURE_SHORT_TRAIN_FLAG 0x4000#define DSP_RECONFIGURE_ECHO_PROTECT_FLAG 0x2000#define DSP_RECONFIGURE_HDLC_FLAG 0x1000#define DSP_RECONFIGURE_SYNC_FLAG 0x0800#define DSP_RECONFIGURE_PROTOCOL_MASK 0x00ff#define DSP_RECONFIGURE_IDLE 0#define DSP_RECONFIGURE_V25 1#define DSP_RECONFIGURE_V21_CH2 2#define DSP_RECONFIGURE_V27_2400 3#define DSP_RECONFIGURE_V27_4800 4#define DSP_RECONFIGURE_V29_7200 5#define DSP_RECONFIGURE_V29_9600 6#define DSP_RECONFIGURE_V33_12000 7#define DSP_RECONFIGURE_V33_14400 8#define DSP_RECONFIGURE_V17_7200 9#define DSP_RECONFIGURE_V17_9600 10#define DSP_RECONFIGURE_V17_12000 11#define DSP_RECONFIGURE_V17_14400 12/*data indications if transparent framer <byte> data 0 <byte> data 1 ...data indications if HDLC framer <byte> data 0 <byte> data 1 ... <byte> CRC 0 <byte> CRC 1 <byte> preamble flags*/#define DSP_UDATA_INDICATION_SYNC 0/*returns: <word> time of sync (sampled from counter at 8kHz)*/#define DSP_UDATA_INDICATION_DCD_OFF 1/*returns: <word> time of DCD off (sampled from counter at 8kHz)*/#define DSP_UDATA_INDICATION_DCD_ON 2/*returns: <word> time of DCD on (sampled from counter at 8kHz) <byte> connected norm <word> connected options <dword> connected speed (bit/s)*/#define DSP_UDATA_INDICATION_CTS_OFF 3/*returns: <word> time of CTS off (sampled from counter at 8kHz)*/#define DSP_UDATA_INDICATION_CTS_ON 4/*returns: <word> time of CTS on (sampled from counter at 8kHz) <byte> connected norm <word> connected options <dword> connected speed (bit/s)*/#define DSP_CONNECTED_NORM_UNSPECIFIED 0#define DSP_CONNECTED_NORM_V21 1#define DSP_CONNECTED_NORM_V23 2#define DSP_CONNECTED_NORM_V22 3#define DSP_CONNECTED_NORM_V22_BIS 4#define DSP_CONNECTED_NORM_V32_BIS 5#define DSP_CONNECTED_NORM_V34 6#define DSP_CONNECTED_NORM_V8 7#define DSP_CONNECTED_NORM_BELL_212A 8#define DSP_CONNECTED_NORM_BELL_103 9#define DSP_CONNECTED_NORM_V29_LEASED_LINE 10#define DSP_CONNECTED_NORM_V33_LEASED_LINE 11#define DSP_CONNECTED_NORM_TFAST 12#define DSP_CONNECTED_NORM_V21_CH2 13#define DSP_CONNECTED_NORM_V27_TER 14#define DSP_CONNECTED_NORM_V29 15#define DSP_CONNECTED_NORM_V33 16#define DSP_CONNECTED_NORM_V17 17#define DSP_CONNECTED_OPTION_TRELLIS 0x0001/*---------------------------------------------------------------------------*/extern char *dsp_read_file (OsFileHandle *fp, word card_type_number, word *p_dsp_download_count, t_dsp_desc *p_dsp_download_table, t_dsp_portable_desc *p_dsp_portable_download_table) ;/*---------------------------------------------------------------------------*/#endif /* DSP_DEFS_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -