dsp_defs.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:9k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (C) Eicon Technology Corporation, 2000.
  3.  *
  4.  * Eicon File Revision :    1.0  
  5.  *
  6.  * This software may be used and distributed according to the terms
  7.  * of the GNU General Public License, incorporated herein by reference.
  8.  *
  9.  */
  10. #ifndef DSP_DEFS_H_
  11. #define DSP_DEFS_H_
  12. #ifndef DSPDIDS_H_
  13. #include "dspdids.h"
  14. #endif
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. /*---------------------------------------------------------------------------*/
  19. #ifndef NULL
  20. #define NULL 0
  21. #endif
  22. #ifndef TRUE
  23. #define TRUE (0 == 0)
  24. #endif
  25. #ifndef FALSE
  26. #define FALSE (0 != 0)
  27. #endif
  28. /*---------------------------------------------------------------------------*/
  29. #define DSP_MEMORY_TYPE_EXTERNAL_DM         0
  30. #define DSP_MEMORY_TYPE_EXTERNAL_PM         1
  31. #define DSP_MEMORY_TYPE_INTERNAL_DM         2
  32. #define DSP_MEMORY_TYPE_INTERNAL_PM         3
  33. #define DSP_DOWNLOAD_FLAG_BOOTABLE          0x0001
  34. #define DSP_DOWNLOAD_FLAG_2181              0x0002
  35. #define DSP_DOWNLOAD_FLAG_TIMECRITICAL      0x0004
  36. #define DSP_DOWNLOAD_FLAG_COMPAND           0x0008
  37. #define DSP_MEMORY_BLOCK_COUNT              16
  38. #define DSP_SEGMENT_PM_FLAG                 0x0001
  39. #define DSP_SEGMENT_SHARED_FLAG             0x0002
  40. #define DSP_SEGMENT_EXTERNAL_DM             DSP_MEMORY_TYPE_EXTERNAL_DM
  41. #define DSP_SEGMENT_EXTERNAL_PM             DSP_MEMORY_TYPE_EXTERNAL_PM
  42. #define DSP_SEGMENT_INTERNAL_DM             DSP_MEMORY_TYPE_INTERNAL_DM
  43. #define DSP_SEGMENT_INTERNAL_PM             DSP_MEMORY_TYPE_INTERNAL_PM
  44. #define DSP_SEGMENT_FIRST_RELOCATABLE       4
  45. #define DSP_DATA_BLOCK_PM_FLAG              0x0001
  46. #define DSP_DATA_BLOCK_DWORD_FLAG           0x0002
  47. #define DSP_DATA_BLOCK_RESOLVE_FLAG         0x0004
  48. #define DSP_RELOC_NONE                      0x00
  49. #define DSP_RELOC_SEGMENT_MASK              0x3f
  50. #define DSP_RELOC_TYPE_MASK                 0xc0
  51. #define DSP_RELOC_TYPE_0                    0x00  /* relocation of address in DM word / high part of PM word */
  52. #define DSP_RELOC_TYPE_1                    0x40  /* relocation of address in low part of PM data word */
  53. #define DSP_RELOC_TYPE_2                    0x80  /* relocation of address in standard command */
  54. #define DSP_RELOC_TYPE_3                    0xc0  /* relocation of address in call/jump on flag in */
  55. #define DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE 48
  56. #define DSP_COMBIFILE_FORMAT_VERSION_BCD    0x0100
  57. #define DSP_FILE_FORMAT_IDENTIFICATION_SIZE 48
  58. #define DSP_FILE_FORMAT_VERSION_BCD         0x0100
  59. typedef struct tag_dsp_combifile_header
  60. {
  61.   char                  format_identification[DSP_COMBIFILE_FORMAT_IDENTIFICATION_SIZE];
  62.   word                  format_version_bcd;
  63.   word                  header_size;
  64.   word                  combifile_description_size;
  65.   word                  directory_entries;
  66.   word                  directory_size;
  67.   word                  download_count;
  68.   word                  usage_mask_size;
  69. } t_dsp_combifile_header;
  70. typedef struct tag_dsp_combifile_directory_entry
  71. {
  72.   word                  card_type_number;
  73.   word                  file_set_number;
  74. } t_dsp_combifile_directory_entry;
  75. typedef struct tag_dsp_file_header
  76. {
  77.   char                  format_identification[DSP_FILE_FORMAT_IDENTIFICATION_SIZE];
  78.   word                  format_version_bcd;
  79.   word                  download_id;
  80.   word                  download_flags;
  81.   word                  required_processing_power;
  82.   word                  interface_channel_count;
  83.   word                  header_size;
  84.   word                  download_description_size;
  85.   word                  memory_block_table_size;
  86.   word                  memory_block_count;
  87.   word                  segment_table_size;
  88.   word                  segment_count;
  89.   word                  symbol_table_size;
  90.   word                  symbol_count;
  91.   word                  total_data_size_dm;
  92.   word                  data_block_count_dm;
  93.   word                  total_data_size_pm;
  94.   word                  data_block_count_pm;
  95. } t_dsp_file_header;
  96. typedef struct tag_dsp_memory_block_desc
  97. {
  98.   word                  alias_memory_block;
  99.   word                  memory_type;
  100.   word                  address;
  101.   word                  size;             /* DSP words */
  102. } t_dsp_memory_block_desc;
  103. typedef struct tag_dsp_segment_desc
  104. {
  105.   word                  memory_block;
  106.   word                  attributes;
  107.   word                  base;
  108.   word                  size;
  109.   word                  alignment;        /* ==0 -> no other legal start address than base */
  110. } t_dsp_segment_desc;
  111. typedef struct tag_dsp_symbol_desc
  112. {
  113.   word                  symbol_id;
  114.   word                  segment;
  115.   word                  offset;
  116.   word                  size;             /* DSP words */
  117. } t_dsp_symbol_desc;
  118. typedef struct tag_dsp_data_block_header
  119. {
  120.   word                  attributes;
  121.   word                  segment;
  122.   word                  offset;
  123.   word                  size;             /* DSP words */
  124. } t_dsp_data_block_header;
  125. typedef struct tag_dsp_download_desc      /* be sure to keep native alignment for MAESTRA's */
  126. {
  127.   word                  download_id;
  128.   word                  download_flags;
  129.   word                  required_processing_power;
  130.   word                  interface_channel_count;
  131.   word                  excess_header_size;
  132.   word                  memory_block_count;
  133.   word                  segment_count;
  134.   word                  symbol_count;
  135.   word                  data_block_count_dm;
  136.   word                  data_block_count_pm;
  137.   byte               *p_excess_header_data;
  138.   char  *p_download_description;
  139.   t_dsp_memory_block_desc *p_memory_block_table;
  140.   t_dsp_segment_desc  *p_segment_table;
  141.   t_dsp_symbol_desc  *p_symbol_table;
  142.   word  *p_data_blocks_dm;
  143.   word  *p_data_blocks_pm;
  144. } t_dsp_download_desc;
  145. #define DSP_DOWNLOAD_INDEX_KERNEL               0
  146. #define DSP30TX_DOWNLOAD_INDEX_KERNEL           1
  147. #define DSP30RX_DOWNLOAD_INDEX_KERNEL           2
  148. #define DSP_MAX_DOWNLOAD_COUNT                  35
  149. #define DSP_DOWNLOAD_MAX_SEGMENTS         16
  150. #define DSP_UDATA_REQUEST_RECONFIGURE     0
  151. /*
  152. parameters:
  153.   <word> reconfigure delay (in 8kHz samples)
  154.   <word> reconfigure code
  155.   <byte> reconfigure hdlc preamble flags
  156. */
  157. #define DSP_RECONFIGURE_TX_FLAG           0x8000
  158. #define DSP_RECONFIGURE_SHORT_TRAIN_FLAG  0x4000
  159. #define DSP_RECONFIGURE_ECHO_PROTECT_FLAG 0x2000
  160. #define DSP_RECONFIGURE_HDLC_FLAG         0x1000
  161. #define DSP_RECONFIGURE_SYNC_FLAG         0x0800
  162. #define DSP_RECONFIGURE_PROTOCOL_MASK     0x00ff
  163. #define DSP_RECONFIGURE_IDLE              0
  164. #define DSP_RECONFIGURE_V25               1
  165. #define DSP_RECONFIGURE_V21_CH2           2
  166. #define DSP_RECONFIGURE_V27_2400          3
  167. #define DSP_RECONFIGURE_V27_4800          4
  168. #define DSP_RECONFIGURE_V29_7200          5
  169. #define DSP_RECONFIGURE_V29_9600          6
  170. #define DSP_RECONFIGURE_V33_12000         7
  171. #define DSP_RECONFIGURE_V33_14400         8
  172. #define DSP_RECONFIGURE_V17_7200          9
  173. #define DSP_RECONFIGURE_V17_9600          10
  174. #define DSP_RECONFIGURE_V17_12000         11
  175. #define DSP_RECONFIGURE_V17_14400         12
  176. /*
  177. data indications if transparent framer
  178.   <byte> data 0
  179.   <byte> data 1
  180.   ...
  181. data indications if HDLC framer
  182.   <byte> data 0
  183.   <byte> data 1
  184.   ...
  185.   <byte> CRC 0
  186.   <byte> CRC 1
  187.   <byte> preamble flags
  188. */
  189. #define DSP_UDATA_INDICATION_SYNC         0
  190. /*
  191. returns:
  192.   <word> time of sync (sampled from counter at 8kHz)
  193. */
  194. #define DSP_UDATA_INDICATION_DCD_OFF      1
  195. /*
  196. returns:
  197.   <word> time of DCD off (sampled from counter at 8kHz)
  198. */
  199. #define DSP_UDATA_INDICATION_DCD_ON       2
  200. /*
  201. returns:
  202.   <word> time of DCD on (sampled from counter at 8kHz)
  203.   <byte> connected norm
  204.   <word> connected options
  205.   <dword> connected speed (bit/s)
  206. */
  207. #define DSP_UDATA_INDICATION_CTS_OFF      3
  208. /*
  209. returns:
  210.   <word> time of CTS off (sampled from counter at 8kHz)
  211. */
  212. #define DSP_UDATA_INDICATION_CTS_ON       4
  213. /*
  214. returns:
  215.   <word> time of CTS on (sampled from counter at 8kHz)
  216.   <byte> connected norm
  217.   <word> connected options
  218.   <dword> connected speed (bit/s)
  219. */
  220. #define DSP_CONNECTED_NORM_UNSPECIFIED      0
  221. #define DSP_CONNECTED_NORM_V21              1
  222. #define DSP_CONNECTED_NORM_V23              2
  223. #define DSP_CONNECTED_NORM_V22              3
  224. #define DSP_CONNECTED_NORM_V22_BIS          4
  225. #define DSP_CONNECTED_NORM_V32_BIS          5
  226. #define DSP_CONNECTED_NORM_V34              6
  227. #define DSP_CONNECTED_NORM_V8               7
  228. #define DSP_CONNECTED_NORM_BELL_212A        8
  229. #define DSP_CONNECTED_NORM_BELL_103         9
  230. #define DSP_CONNECTED_NORM_V29_LEASED_LINE  10
  231. #define DSP_CONNECTED_NORM_V33_LEASED_LINE  11
  232. #define DSP_CONNECTED_NORM_TFAST            12
  233. #define DSP_CONNECTED_NORM_V21_CH2          13
  234. #define DSP_CONNECTED_NORM_V27_TER          14
  235. #define DSP_CONNECTED_NORM_V29              15
  236. #define DSP_CONNECTED_NORM_V33              16
  237. #define DSP_CONNECTED_NORM_V17              17
  238. #define DSP_CONNECTED_OPTION_TRELLIS        0x0001
  239. /*---------------------------------------------------------------------------*/
  240. #ifdef __cplusplus
  241. }
  242. #endif
  243. #endif
  244. /*---------------------------------------------------------------------------*/