source: rtems/c/src/lib/libbsp/powerpc/gen5200/bestcomm/dma_image.c @ c8423f9

4.104.114.84.95
Last change on this file since c8423f9 was c8423f9, checked in by Ralf Corsepius <ralf.corsepius@…>, on 01/02/06 at 04:48:19

Eliminate #include "../bestcomm/...

  • Property mode set to 100644
File size: 46.1 KB
Line 
1/******************************************************************************
2*
3* Copyright (c) 2004 Freescale Semiconductor, Inc.
4*
5* Permission is hereby granted, free of charge, to any person obtaining a
6* copy of this software and associated documentation files (the "Software"),
7* to deal in the Software without restriction, including without limitation
8* the rights to use, copy, modify, merge, publish, distribute, sublicense,
9* and/or sell copies of the Software, and to permit persons to whom the
10* Software is furnished to do so, subject to the following conditions:
11*
12* The above copyright notice and this permission notice shall be included
13* in all copies or substantial portions of the Software.
14*
15* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21* OTHER DEALINGS IN THE SOFTWARE.
22*
23******************************************************************************/
24
25#include "dma_image.h"
26
27TASK_PCI_TX_api_t  TASK_PCI_TX_storage;
28TASK_PCI_TX_api_t *TASK_PCI_TX_api=&TASK_PCI_TX_storage;
29
30TASK_PCI_RX_api_t  TASK_PCI_RX_storage;
31TASK_PCI_RX_api_t *TASK_PCI_RX_api=&TASK_PCI_RX_storage;
32
33TASK_FEC_TX_api_t  TASK_FEC_TX_storage;
34TASK_FEC_TX_api_t *TASK_FEC_TX_api=&TASK_FEC_TX_storage;
35
36TASK_FEC_RX_api_t  TASK_FEC_RX_storage;
37TASK_FEC_RX_api_t *TASK_FEC_RX_api=&TASK_FEC_RX_storage;
38
39TASK_LPC_api_t  TASK_LPC_storage;
40TASK_LPC_api_t *TASK_LPC_api=&TASK_LPC_storage;
41
42TASK_ATA_api_t  TASK_ATA_storage;
43TASK_ATA_api_t *TASK_ATA_api=&TASK_ATA_storage;
44
45TASK_CRC16_DP_0_api_t  TASK_CRC16_DP_0_storage;
46TASK_CRC16_DP_0_api_t *TASK_CRC16_DP_0_api=&TASK_CRC16_DP_0_storage;
47
48TASK_CRC16_DP_1_api_t  TASK_CRC16_DP_1_storage;
49TASK_CRC16_DP_1_api_t *TASK_CRC16_DP_1_api=&TASK_CRC16_DP_1_storage;
50
51TASK_GEN_DP_0_api_t  TASK_GEN_DP_0_storage;
52TASK_GEN_DP_0_api_t *TASK_GEN_DP_0_api=&TASK_GEN_DP_0_storage;
53
54TASK_GEN_DP_1_api_t  TASK_GEN_DP_1_storage;
55TASK_GEN_DP_1_api_t *TASK_GEN_DP_1_api=&TASK_GEN_DP_1_storage;
56
57TASK_GEN_DP_2_api_t  TASK_GEN_DP_2_storage;
58TASK_GEN_DP_2_api_t *TASK_GEN_DP_2_api=&TASK_GEN_DP_2_storage;
59
60TASK_GEN_DP_3_api_t  TASK_GEN_DP_3_storage;
61TASK_GEN_DP_3_api_t *TASK_GEN_DP_3_api=&TASK_GEN_DP_3_storage;
62
63TASK_GEN_TX_BD_api_t  TASK_GEN_TX_BD_storage;
64TASK_GEN_TX_BD_api_t *TASK_GEN_TX_BD_api=&TASK_GEN_TX_BD_storage;
65
66TASK_GEN_RX_BD_api_t  TASK_GEN_RX_BD_storage;
67TASK_GEN_RX_BD_api_t *TASK_GEN_RX_BD_api=&TASK_GEN_RX_BD_storage;
68
69TASK_GEN_DP_BD_0_api_t  TASK_GEN_DP_BD_0_storage;
70TASK_GEN_DP_BD_0_api_t *TASK_GEN_DP_BD_0_api=&TASK_GEN_DP_BD_0_storage;
71
72TASK_GEN_DP_BD_1_api_t  TASK_GEN_DP_BD_1_storage;
73TASK_GEN_DP_BD_1_api_t *TASK_GEN_DP_BD_1_api=&TASK_GEN_DP_BD_1_storage;
74
75
76
77
78void init_dma_image_TASK_PCI_TX(uint8 *taskBar, sint64 vMemOffset)
79{
80        uint8 *vMem_taskBar = (taskBar - vMemOffset);
81        TASK_PCI_TX_api->TaskNum            = 0;
82        TASK_PCI_TX_api->PtrStartTDT        = (volatile uint32 *)(vMem_taskBar + 0x0000UL);
83        TASK_PCI_TX_api->PtrEndTDT          = (volatile uint32 *)(vMem_taskBar + 0x0004UL);
84        TASK_PCI_TX_api->PtrVarTab          = (volatile uint32 *)(vMem_taskBar + 0x0008UL);
85        TASK_PCI_TX_api->PtrFDT             = (volatile uint32 *)(vMem_taskBar + 0x000cUL);
86        TASK_PCI_TX_api->PtrCSave           = (volatile uint32 *)(vMem_taskBar + 0x0018UL);
87        TASK_PCI_TX_api->TaskPragma         = (volatile uint8  *)(TASK_PCI_TX_api->PtrFDT)+3;
88        TASK_PCI_TX_api->NumDRD             = 7;
89        TASK_PCI_TX_api->DRD[0]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0008UL - vMemOffset);
90        TASK_PCI_TX_api->DRD[1]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
91        TASK_PCI_TX_api->DRD[2]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0018UL - vMemOffset);
92        TASK_PCI_TX_api->DRD[3]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0020UL - vMemOffset);
93        TASK_PCI_TX_api->DRD[4]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
94        TASK_PCI_TX_api->DRD[5]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
95        TASK_PCI_TX_api->DRD[6]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrStartTDT) + 0x0038UL - vMemOffset);
96        TASK_PCI_TX_api->NumVar             = 12;
97        TASK_PCI_TX_api->var                = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrVarTab) - vMemOffset);
98        TASK_PCI_TX_api->NumInc             = 5;
99        TASK_PCI_TX_api->inc                = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_TX_api->PtrVarTab) + (4*24) - vMemOffset);
100        TASK_PCI_TX_api->AddrDstFIFO        = &(TASK_PCI_TX_api->var[0]);
101        TASK_PCI_TX_api->IncrBytes          = (volatile sint16 *)&(TASK_PCI_TX_api->inc[0])+1;
102        TASK_PCI_TX_api->AddrPktSizeReg     = &(TASK_PCI_TX_api->var[1]);
103        TASK_PCI_TX_api->IncrSrc            = (volatile sint16 *)&(TASK_PCI_TX_api->inc[1])+1;
104        TASK_PCI_TX_api->AddrSCStatusReg    = &(TASK_PCI_TX_api->var[2]);
105        TASK_PCI_TX_api->Bytes              = &(TASK_PCI_TX_api->var[3]);
106        TASK_PCI_TX_api->IterExtra          = &(TASK_PCI_TX_api->var[4]);
107        TASK_PCI_TX_api->StartAddrSrc       = &(TASK_PCI_TX_api->var[7]);
108}
109
110
111void init_dma_image_TASK_PCI_RX(uint8 *taskBar, sint64 vMemOffset)
112{
113        uint8 *vMem_taskBar = (taskBar - vMemOffset);
114        TASK_PCI_RX_api->TaskNum            = 1;
115        TASK_PCI_RX_api->PtrStartTDT        = (volatile uint32 *)(vMem_taskBar + 0x0020UL);
116        TASK_PCI_RX_api->PtrEndTDT          = (volatile uint32 *)(vMem_taskBar + 0x0024UL);
117        TASK_PCI_RX_api->PtrVarTab          = (volatile uint32 *)(vMem_taskBar + 0x0028UL);
118        TASK_PCI_RX_api->PtrFDT             = (volatile uint32 *)(vMem_taskBar + 0x002cUL);
119        TASK_PCI_RX_api->PtrCSave           = (volatile uint32 *)(vMem_taskBar + 0x0038UL);
120        TASK_PCI_RX_api->TaskPragma         = (volatile uint8  *)(TASK_PCI_RX_api->PtrFDT)+3;
121        TASK_PCI_RX_api->NumDRD             = 5;
122        TASK_PCI_RX_api->DRD[0]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrStartTDT) + 0x0008UL - vMemOffset);
123        TASK_PCI_RX_api->DRD[1]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
124        TASK_PCI_RX_api->DRD[2]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrStartTDT) + 0x0018UL - vMemOffset);
125        TASK_PCI_RX_api->DRD[3]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrStartTDT) + 0x0020UL - vMemOffset);
126        TASK_PCI_RX_api->DRD[4]             = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
127        TASK_PCI_RX_api->NumVar             = 9;
128        TASK_PCI_RX_api->var                = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrVarTab) - vMemOffset);
129        TASK_PCI_RX_api->NumInc             = 4;
130        TASK_PCI_RX_api->inc                = (volatile uint32 *)(volatile uint32)(*(TASK_PCI_RX_api->PtrVarTab) + (4*24) - vMemOffset);
131        TASK_PCI_RX_api->AddrPktSizeReg     = &(TASK_PCI_RX_api->var[0]);
132        TASK_PCI_RX_api->IncrBytes          = (volatile sint16 *)&(TASK_PCI_RX_api->inc[0])+1;
133        TASK_PCI_RX_api->AddrSrcFIFO        = &(TASK_PCI_RX_api->var[1]);
134        TASK_PCI_RX_api->IncrDst            = (volatile sint16 *)&(TASK_PCI_RX_api->inc[1])+1;
135        TASK_PCI_RX_api->Bytes              = &(TASK_PCI_RX_api->var[2]);
136        TASK_PCI_RX_api->IterExtra          = &(TASK_PCI_RX_api->var[3]);
137        TASK_PCI_RX_api->StartAddrDst       = &(TASK_PCI_RX_api->var[6]);
138}
139
140
141void init_dma_image_TASK_FEC_TX(uint8 *taskBar, sint64 vMemOffset)
142{
143        uint8 *vMem_taskBar = (taskBar - vMemOffset);
144        TASK_FEC_TX_api->TaskNum            = 2;
145        TASK_FEC_TX_api->PtrStartTDT        = (volatile uint32 *)(vMem_taskBar + 0x0040UL);
146        TASK_FEC_TX_api->PtrEndTDT          = (volatile uint32 *)(vMem_taskBar + 0x0044UL);
147        TASK_FEC_TX_api->PtrVarTab          = (volatile uint32 *)(vMem_taskBar + 0x0048UL);
148        TASK_FEC_TX_api->PtrFDT             = (volatile uint32 *)(vMem_taskBar + 0x004cUL);
149        TASK_FEC_TX_api->PtrCSave           = (volatile uint32 *)(vMem_taskBar + 0x0058UL);
150        TASK_FEC_TX_api->TaskPragma         = (volatile uint8  *)(TASK_FEC_TX_api->PtrFDT)+3;
151        TASK_FEC_TX_api->NumDRD             = 22;
152        TASK_FEC_TX_api->DRD[0]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0004UL - vMemOffset);
153        TASK_FEC_TX_api->DRD[1]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0008UL - vMemOffset);
154        TASK_FEC_TX_api->DRD[2]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
155        TASK_FEC_TX_api->DRD[3]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x001cUL - vMemOffset);
156        TASK_FEC_TX_api->DRD[4]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0020UL - vMemOffset);
157        TASK_FEC_TX_api->DRD[5]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
158        TASK_FEC_TX_api->DRD[6]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
159        TASK_FEC_TX_api->DRD[7]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0030UL - vMemOffset);
160        TASK_FEC_TX_api->DRD[8]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0034UL - vMemOffset);
161        TASK_FEC_TX_api->DRD[9]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0038UL - vMemOffset);
162        TASK_FEC_TX_api->DRD[10]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0044UL - vMemOffset);
163        TASK_FEC_TX_api->DRD[11]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0048UL - vMemOffset);
164        TASK_FEC_TX_api->DRD[12]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x004cUL - vMemOffset);
165        TASK_FEC_TX_api->DRD[13]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0054UL - vMemOffset);
166        TASK_FEC_TX_api->DRD[14]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0060UL - vMemOffset);
167        TASK_FEC_TX_api->DRD[15]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0064UL - vMemOffset);
168        TASK_FEC_TX_api->DRD[16]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0068UL - vMemOffset);
169        TASK_FEC_TX_api->DRD[17]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x006cUL - vMemOffset);
170        TASK_FEC_TX_api->DRD[18]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0074UL - vMemOffset);
171        TASK_FEC_TX_api->DRD[19]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x007cUL - vMemOffset);
172        TASK_FEC_TX_api->DRD[20]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0084UL - vMemOffset);
173        TASK_FEC_TX_api->DRD[21]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrStartTDT) + 0x0088UL - vMemOffset);
174        TASK_FEC_TX_api->NumVar             = 20;
175        TASK_FEC_TX_api->var                = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrVarTab) - vMemOffset);
176        TASK_FEC_TX_api->NumInc             = 7;
177        TASK_FEC_TX_api->inc                = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_TX_api->PtrVarTab) + (4*24) - vMemOffset);
178        TASK_FEC_TX_api->AddrDRD            = &(TASK_FEC_TX_api->var[0]);
179        TASK_FEC_TX_api->AddrDRDIdx         = 19;
180        *TASK_FEC_TX_api->AddrDRD           = (volatile uint32)(TASK_FEC_TX_api->DRD[19]);
181        TASK_FEC_TX_api->IncrBytes          = (volatile sint16 *)&(TASK_FEC_TX_api->inc[0])+1;
182        TASK_FEC_TX_api->AddrDstFIFO        = &(TASK_FEC_TX_api->var[1]);
183        TASK_FEC_TX_api->IncrSrc            = (volatile sint16 *)&(TASK_FEC_TX_api->inc[1])+1;
184        TASK_FEC_TX_api->AddrEnable         = &(TASK_FEC_TX_api->var[2]);
185        TASK_FEC_TX_api->IncrSrcMA          = (volatile sint16 *)&(TASK_FEC_TX_api->inc[2])+1;
186        TASK_FEC_TX_api->BDTableBase        = &(TASK_FEC_TX_api->var[3]);
187        TASK_FEC_TX_api->BDTableLast        = &(TASK_FEC_TX_api->var[4]);
188        TASK_FEC_TX_api->BDTableStart       = &(TASK_FEC_TX_api->var[5]);
189        TASK_FEC_TX_api->Bytes              = &(TASK_FEC_TX_api->var[6]);
190}
191
192
193void init_dma_image_TASK_FEC_RX(uint8 *taskBar, sint64 vMemOffset)
194{
195        uint8 *vMem_taskBar = (taskBar - vMemOffset);
196        TASK_FEC_RX_api->TaskNum            = 3;
197        TASK_FEC_RX_api->PtrStartTDT        = (volatile uint32 *)(vMem_taskBar + 0x0060UL);
198        TASK_FEC_RX_api->PtrEndTDT          = (volatile uint32 *)(vMem_taskBar + 0x0064UL);
199        TASK_FEC_RX_api->PtrVarTab          = (volatile uint32 *)(vMem_taskBar + 0x0068UL);
200        TASK_FEC_RX_api->PtrFDT             = (volatile uint32 *)(vMem_taskBar + 0x006cUL);
201        TASK_FEC_RX_api->PtrCSave           = (volatile uint32 *)(vMem_taskBar + 0x0078UL);
202        TASK_FEC_RX_api->TaskPragma         = (volatile uint8  *)(TASK_FEC_RX_api->PtrFDT)+3;
203        TASK_FEC_RX_api->NumDRD             = 13;
204        TASK_FEC_RX_api->DRD[0]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0004UL - vMemOffset);
205        TASK_FEC_RX_api->DRD[1]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x000cUL - vMemOffset);
206        TASK_FEC_RX_api->DRD[2]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0010UL - vMemOffset);
207        TASK_FEC_RX_api->DRD[3]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0014UL - vMemOffset);
208        TASK_FEC_RX_api->DRD[4]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0020UL - vMemOffset);
209        TASK_FEC_RX_api->DRD[5]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0024UL - vMemOffset);
210        TASK_FEC_RX_api->DRD[6]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x002cUL - vMemOffset);
211        TASK_FEC_RX_api->DRD[7]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0038UL - vMemOffset);
212        TASK_FEC_RX_api->DRD[8]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x003cUL - vMemOffset);
213        TASK_FEC_RX_api->DRD[9]             = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0040UL - vMemOffset);
214        TASK_FEC_RX_api->DRD[10]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0048UL - vMemOffset);
215        TASK_FEC_RX_api->DRD[11]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0050UL - vMemOffset);
216        TASK_FEC_RX_api->DRD[12]            = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrStartTDT) + 0x0058UL - vMemOffset);
217        TASK_FEC_RX_api->NumVar             = 15;
218        TASK_FEC_RX_api->var                = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrVarTab) - vMemOffset);
219        TASK_FEC_RX_api->NumInc             = 7;
220        TASK_FEC_RX_api->inc                = (volatile uint32 *)(volatile uint32)(*(TASK_FEC_RX_api->PtrVarTab) + (4*24) - vMemOffset);
221        TASK_FEC_RX_api->AddrEnable         = &(TASK_FEC_RX_api->var[0]);
222        TASK_FEC_RX_api->IncrBytes          = (volatile sint16 *)&(TASK_FEC_RX_api->inc[0])+1;
223        TASK_FEC_RX_api->AddrSrcFIFO        = &(TASK_FEC_RX_api->var[1]);
224        TASK_FEC_RX_api->IncrDst            = (volatile sint16 *)&(TASK_FEC_RX_api->inc[1])+1;
225        TASK_FEC_RX_api->BDTableBase        = &(TASK_FEC_RX_api->var[2]);
226        TASK_FEC_RX_api->IncrDstMA          = (volatile sint16 *)&(TASK_FEC_RX_api->inc[2])+1;
227        TASK_FEC_RX_api->BDTableLast        = &(TASK_FEC_RX_api->var[3]);
228        TASK_FEC_RX_api->BDTableStart       = &(TASK_FEC_RX_api->var[4]);
229        TASK_FEC_RX_api->Bytes              = &(TASK_FEC_RX_api->var[5]);
230}
231
232
233void init_dma_image_TASK_LPC(uint8 *taskBar, sint64 vMemOffset)
234{
235        uint8 *vMem_taskBar = (taskBar - vMemOffset);
236        TASK_LPC_api->TaskNum               = 4;
237        TASK_LPC_api->PtrStartTDT           = (volatile uint32 *)(vMem_taskBar + 0x0080UL);
238        TASK_LPC_api->PtrEndTDT             = (volatile uint32 *)(vMem_taskBar + 0x0084UL);
239        TASK_LPC_api->PtrVarTab             = (volatile uint32 *)(vMem_taskBar + 0x0088UL);
240        TASK_LPC_api->PtrFDT                = (volatile uint32 *)(vMem_taskBar + 0x008cUL);
241        TASK_LPC_api->PtrCSave              = (volatile uint32 *)(vMem_taskBar + 0x0098UL);
242        TASK_LPC_api->TaskPragma            = (volatile uint8  *)(TASK_LPC_api->PtrFDT)+3;
243        TASK_LPC_api->NumDRD                = 4;
244        TASK_LPC_api->DRD[0]                = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x000cUL - vMemOffset);
245        TASK_LPC_api->DRD[1]                = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x0018UL - vMemOffset);
246        TASK_LPC_api->DRD[2]                = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x0024UL - vMemOffset);
247        TASK_LPC_api->DRD[3]                = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrStartTDT) + 0x002cUL - vMemOffset);
248        TASK_LPC_api->NumVar                = 9;
249        TASK_LPC_api->var                   = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrVarTab) - vMemOffset);
250        TASK_LPC_api->NumInc                = 8;
251        TASK_LPC_api->inc                   = (volatile uint32 *)(volatile uint32)(*(TASK_LPC_api->PtrVarTab) + (4*24) - vMemOffset);
252        TASK_LPC_api->Bytes                 = &(TASK_LPC_api->var[0]);
253        TASK_LPC_api->IncrBytes             = (volatile sint16 *)&(TASK_LPC_api->inc[0])+1;
254        TASK_LPC_api->IterExtra             = &(TASK_LPC_api->var[1]);
255        TASK_LPC_api->IncrDst               = (volatile sint16 *)&(TASK_LPC_api->inc[1])+1;
256        TASK_LPC_api->IncrDstMA             = (volatile sint16 *)&(TASK_LPC_api->inc[2])+1;
257        TASK_LPC_api->IncrSrc               = (volatile sint16 *)&(TASK_LPC_api->inc[3])+1;
258        TASK_LPC_api->StartAddrDst          = &(TASK_LPC_api->var[4]);
259        TASK_LPC_api->IncrSrcMA             = (volatile sint16 *)&(TASK_LPC_api->inc[4])+1;
260        TASK_LPC_api->StartAddrSrc          = &(TASK_LPC_api->var[5]);
261}
262
263
264void init_dma_image_TASK_ATA(uint8 *taskBar, sint64 vMemOffset)
265{
266        uint8 *vMem_taskBar = (taskBar - vMemOffset);
267        TASK_ATA_api->TaskNum               = 5;
268        TASK_ATA_api->PtrStartTDT           = (volatile uint32 *)(vMem_taskBar + 0x00a0UL);
269        TASK_ATA_api->PtrEndTDT             = (volatile uint32 *)(vMem_taskBar + 0x00a4UL);
270        TASK_ATA_api->PtrVarTab             = (volatile uint32 *)(vMem_taskBar + 0x00a8UL);
271        TASK_ATA_api->PtrFDT                = (volatile uint32 *)(vMem_taskBar + 0x00acUL);
272        TASK_ATA_api->PtrCSave              = (volatile uint32 *)(vMem_taskBar + 0x00b8UL);
273        TASK_ATA_api->TaskPragma            = (volatile uint8  *)(TASK_ATA_api->PtrFDT)+3;
274        TASK_ATA_api->NumDRD                = 7;
275        TASK_ATA_api->DRD[0]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0004UL - vMemOffset);
276        TASK_ATA_api->DRD[1]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x000cUL - vMemOffset);
277        TASK_ATA_api->DRD[2]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0010UL - vMemOffset);
278        TASK_ATA_api->DRD[3]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0014UL - vMemOffset);
279        TASK_ATA_api->DRD[4]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0024UL - vMemOffset);
280        TASK_ATA_api->DRD[5]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x002cUL - vMemOffset);
281        TASK_ATA_api->DRD[6]                = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrStartTDT) + 0x0030UL - vMemOffset);
282        TASK_ATA_api->NumVar                = 12;
283        TASK_ATA_api->var                   = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrVarTab) - vMemOffset);
284        TASK_ATA_api->NumInc                = 6;
285        TASK_ATA_api->inc                   = (volatile uint32 *)(volatile uint32)(*(TASK_ATA_api->PtrVarTab) + (4*24) - vMemOffset);
286        TASK_ATA_api->AddrEnable            = &(TASK_ATA_api->var[0]);
287        TASK_ATA_api->IncrBytes             = (volatile sint16 *)&(TASK_ATA_api->inc[0])+1;
288        TASK_ATA_api->BDTableBase           = &(TASK_ATA_api->var[1]);
289        TASK_ATA_api->IncrDst               = (volatile sint16 *)&(TASK_ATA_api->inc[1])+1;
290        TASK_ATA_api->BDTableLast           = &(TASK_ATA_api->var[2]);
291        TASK_ATA_api->IncrSrc               = (volatile sint16 *)&(TASK_ATA_api->inc[2])+1;
292        TASK_ATA_api->BDTableStart          = &(TASK_ATA_api->var[3]);
293        TASK_ATA_api->Bytes                 = &(TASK_ATA_api->var[4]);
294}
295
296
297void init_dma_image_TASK_CRC16_DP_0(uint8 *taskBar, sint64 vMemOffset)
298{
299        uint8 *vMem_taskBar = (taskBar - vMemOffset);
300        TASK_CRC16_DP_0_api->TaskNum        = 6;
301        TASK_CRC16_DP_0_api->PtrStartTDT    = (volatile uint32 *)(vMem_taskBar + 0x00c0UL);
302        TASK_CRC16_DP_0_api->PtrEndTDT      = (volatile uint32 *)(vMem_taskBar + 0x00c4UL);
303        TASK_CRC16_DP_0_api->PtrVarTab      = (volatile uint32 *)(vMem_taskBar + 0x00c8UL);
304        TASK_CRC16_DP_0_api->PtrFDT         = (volatile uint32 *)(vMem_taskBar + 0x00ccUL);
305        TASK_CRC16_DP_0_api->PtrCSave       = (volatile uint32 *)(vMem_taskBar + 0x00d8UL);
306        TASK_CRC16_DP_0_api->TaskPragma     = (volatile uint8  *)(TASK_CRC16_DP_0_api->PtrFDT)+3;
307        TASK_CRC16_DP_0_api->NumDRD         = 9;
308        TASK_CRC16_DP_0_api->DRD[0]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0004UL - vMemOffset);
309        TASK_CRC16_DP_0_api->DRD[1]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0008UL - vMemOffset);
310        TASK_CRC16_DP_0_api->DRD[2]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0014UL - vMemOffset);
311        TASK_CRC16_DP_0_api->DRD[3]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0018UL - vMemOffset);
312        TASK_CRC16_DP_0_api->DRD[4]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0024UL - vMemOffset);
313        TASK_CRC16_DP_0_api->DRD[5]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0028UL - vMemOffset);
314        TASK_CRC16_DP_0_api->DRD[6]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0034UL - vMemOffset);
315        TASK_CRC16_DP_0_api->DRD[7]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0038UL - vMemOffset);
316        TASK_CRC16_DP_0_api->DRD[8]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrStartTDT) + 0x0040UL - vMemOffset);
317        TASK_CRC16_DP_0_api->NumVar         = 10;
318        TASK_CRC16_DP_0_api->var            = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrVarTab) - vMemOffset);
319        TASK_CRC16_DP_0_api->NumInc         = 8;
320        TASK_CRC16_DP_0_api->inc            = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_0_api->PtrVarTab) + (4*24) - vMemOffset);
321        TASK_CRC16_DP_0_api->Bytes          = &(TASK_CRC16_DP_0_api->var[0]);
322        TASK_CRC16_DP_0_api->IncrBytes      = (volatile sint16 *)&(TASK_CRC16_DP_0_api->inc[0])+1;
323        TASK_CRC16_DP_0_api->IterExtra      = &(TASK_CRC16_DP_0_api->var[1]);
324        TASK_CRC16_DP_0_api->IncrDst        = (volatile sint16 *)&(TASK_CRC16_DP_0_api->inc[1])+1;
325        TASK_CRC16_DP_0_api->IncrDstMA      = (volatile sint16 *)&(TASK_CRC16_DP_0_api->inc[2])+1;
326        TASK_CRC16_DP_0_api->IncrSrc        = (volatile sint16 *)&(TASK_CRC16_DP_0_api->inc[3])+1;
327        TASK_CRC16_DP_0_api->StartAddrDst   = &(TASK_CRC16_DP_0_api->var[4]);
328        TASK_CRC16_DP_0_api->IncrSrcMA      = (volatile sint16 *)&(TASK_CRC16_DP_0_api->inc[4])+1;
329        TASK_CRC16_DP_0_api->StartAddrSrc   = &(TASK_CRC16_DP_0_api->var[5]);
330}
331
332
333void init_dma_image_TASK_CRC16_DP_1(uint8 *taskBar, sint64 vMemOffset)
334{
335        uint8 *vMem_taskBar = (taskBar - vMemOffset);
336        TASK_CRC16_DP_1_api->TaskNum        = 7;
337        TASK_CRC16_DP_1_api->PtrStartTDT    = (volatile uint32 *)(vMem_taskBar + 0x00e0UL);
338        TASK_CRC16_DP_1_api->PtrEndTDT      = (volatile uint32 *)(vMem_taskBar + 0x00e4UL);
339        TASK_CRC16_DP_1_api->PtrVarTab      = (volatile uint32 *)(vMem_taskBar + 0x00e8UL);
340        TASK_CRC16_DP_1_api->PtrFDT         = (volatile uint32 *)(vMem_taskBar + 0x00ecUL);
341        TASK_CRC16_DP_1_api->PtrCSave       = (volatile uint32 *)(vMem_taskBar + 0x00f8UL);
342        TASK_CRC16_DP_1_api->TaskPragma     = (volatile uint8  *)(TASK_CRC16_DP_1_api->PtrFDT)+3;
343        TASK_CRC16_DP_1_api->NumDRD         = 9;
344        TASK_CRC16_DP_1_api->DRD[0]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0004UL - vMemOffset);
345        TASK_CRC16_DP_1_api->DRD[1]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0008UL - vMemOffset);
346        TASK_CRC16_DP_1_api->DRD[2]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0014UL - vMemOffset);
347        TASK_CRC16_DP_1_api->DRD[3]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0018UL - vMemOffset);
348        TASK_CRC16_DP_1_api->DRD[4]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0024UL - vMemOffset);
349        TASK_CRC16_DP_1_api->DRD[5]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0028UL - vMemOffset);
350        TASK_CRC16_DP_1_api->DRD[6]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0034UL - vMemOffset);
351        TASK_CRC16_DP_1_api->DRD[7]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0038UL - vMemOffset);
352        TASK_CRC16_DP_1_api->DRD[8]         = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrStartTDT) + 0x0040UL - vMemOffset);
353        TASK_CRC16_DP_1_api->NumVar         = 10;
354        TASK_CRC16_DP_1_api->var            = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrVarTab) - vMemOffset);
355        TASK_CRC16_DP_1_api->NumInc         = 8;
356        TASK_CRC16_DP_1_api->inc            = (volatile uint32 *)(volatile uint32)(*(TASK_CRC16_DP_1_api->PtrVarTab) + (4*24) - vMemOffset);
357        TASK_CRC16_DP_1_api->Bytes          = &(TASK_CRC16_DP_1_api->var[0]);
358        TASK_CRC16_DP_1_api->IncrBytes      = (volatile sint16 *)&(TASK_CRC16_DP_1_api->inc[0])+1;
359        TASK_CRC16_DP_1_api->IterExtra      = &(TASK_CRC16_DP_1_api->var[1]);
360        TASK_CRC16_DP_1_api->IncrDst        = (volatile sint16 *)&(TASK_CRC16_DP_1_api->inc[1])+1;
361        TASK_CRC16_DP_1_api->IncrDstMA      = (volatile sint16 *)&(TASK_CRC16_DP_1_api->inc[2])+1;
362        TASK_CRC16_DP_1_api->IncrSrc        = (volatile sint16 *)&(TASK_CRC16_DP_1_api->inc[3])+1;
363        TASK_CRC16_DP_1_api->StartAddrDst   = &(TASK_CRC16_DP_1_api->var[4]);
364        TASK_CRC16_DP_1_api->IncrSrcMA      = (volatile sint16 *)&(TASK_CRC16_DP_1_api->inc[4])+1;
365        TASK_CRC16_DP_1_api->StartAddrSrc   = &(TASK_CRC16_DP_1_api->var[5]);
366}
367
368
369void init_dma_image_TASK_GEN_DP_0(uint8 *taskBar, sint64 vMemOffset)
370{
371        uint8 *vMem_taskBar = (taskBar - vMemOffset);
372        TASK_GEN_DP_0_api->TaskNum          = 8;
373        TASK_GEN_DP_0_api->PtrStartTDT      = (volatile uint32 *)(vMem_taskBar + 0x0100UL);
374        TASK_GEN_DP_0_api->PtrEndTDT        = (volatile uint32 *)(vMem_taskBar + 0x0104UL);
375        TASK_GEN_DP_0_api->PtrVarTab        = (volatile uint32 *)(vMem_taskBar + 0x0108UL);
376        TASK_GEN_DP_0_api->PtrFDT           = (volatile uint32 *)(vMem_taskBar + 0x010cUL);
377        TASK_GEN_DP_0_api->PtrCSave         = (volatile uint32 *)(vMem_taskBar + 0x0118UL);
378        TASK_GEN_DP_0_api->TaskPragma       = (volatile uint8  *)(TASK_GEN_DP_0_api->PtrFDT)+3;
379        TASK_GEN_DP_0_api->NumDRD           = 4;
380        TASK_GEN_DP_0_api->DRD[0]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x000cUL - vMemOffset);
381        TASK_GEN_DP_0_api->DRD[1]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x0018UL - vMemOffset);
382        TASK_GEN_DP_0_api->DRD[2]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x0024UL - vMemOffset);
383        TASK_GEN_DP_0_api->DRD[3]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrStartTDT) + 0x002cUL - vMemOffset);
384        TASK_GEN_DP_0_api->NumVar           = 9;
385        TASK_GEN_DP_0_api->var              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrVarTab) - vMemOffset);
386        TASK_GEN_DP_0_api->NumInc           = 8;
387        TASK_GEN_DP_0_api->inc              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_0_api->PtrVarTab) + (4*24) - vMemOffset);
388        TASK_GEN_DP_0_api->Bytes            = &(TASK_GEN_DP_0_api->var[0]);
389        TASK_GEN_DP_0_api->IncrBytes        = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[0])+1;
390        TASK_GEN_DP_0_api->IterExtra        = &(TASK_GEN_DP_0_api->var[1]);
391        TASK_GEN_DP_0_api->IncrDst          = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[1])+1;
392        TASK_GEN_DP_0_api->IncrDstMA        = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[2])+1;
393        TASK_GEN_DP_0_api->IncrSrc          = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[3])+1;
394        TASK_GEN_DP_0_api->StartAddrDst     = &(TASK_GEN_DP_0_api->var[4]);
395        TASK_GEN_DP_0_api->IncrSrcMA        = (volatile sint16 *)&(TASK_GEN_DP_0_api->inc[4])+1;
396        TASK_GEN_DP_0_api->StartAddrSrc     = &(TASK_GEN_DP_0_api->var[5]);
397}
398
399
400void init_dma_image_TASK_GEN_DP_1(uint8 *taskBar, sint64 vMemOffset)
401{
402        uint8 *vMem_taskBar = (taskBar - vMemOffset);
403        TASK_GEN_DP_1_api->TaskNum          = 9;
404        TASK_GEN_DP_1_api->PtrStartTDT      = (volatile uint32 *)(vMem_taskBar + 0x0120UL);
405        TASK_GEN_DP_1_api->PtrEndTDT        = (volatile uint32 *)(vMem_taskBar + 0x0124UL);
406        TASK_GEN_DP_1_api->PtrVarTab        = (volatile uint32 *)(vMem_taskBar + 0x0128UL);
407        TASK_GEN_DP_1_api->PtrFDT           = (volatile uint32 *)(vMem_taskBar + 0x012cUL);
408        TASK_GEN_DP_1_api->PtrCSave         = (volatile uint32 *)(vMem_taskBar + 0x0138UL);
409        TASK_GEN_DP_1_api->TaskPragma       = (volatile uint8  *)(TASK_GEN_DP_1_api->PtrFDT)+3;
410        TASK_GEN_DP_1_api->NumDRD           = 4;
411        TASK_GEN_DP_1_api->DRD[0]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x000cUL - vMemOffset);
412        TASK_GEN_DP_1_api->DRD[1]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x0018UL - vMemOffset);
413        TASK_GEN_DP_1_api->DRD[2]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x0024UL - vMemOffset);
414        TASK_GEN_DP_1_api->DRD[3]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrStartTDT) + 0x002cUL - vMemOffset);
415        TASK_GEN_DP_1_api->NumVar           = 9;
416        TASK_GEN_DP_1_api->var              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrVarTab) - vMemOffset);
417        TASK_GEN_DP_1_api->NumInc           = 8;
418        TASK_GEN_DP_1_api->inc              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_1_api->PtrVarTab) + (4*24) - vMemOffset);
419        TASK_GEN_DP_1_api->Bytes            = &(TASK_GEN_DP_1_api->var[0]);
420        TASK_GEN_DP_1_api->IncrBytes        = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[0])+1;
421        TASK_GEN_DP_1_api->IterExtra        = &(TASK_GEN_DP_1_api->var[1]);
422        TASK_GEN_DP_1_api->IncrDst          = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[1])+1;
423        TASK_GEN_DP_1_api->IncrDstMA        = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[2])+1;
424        TASK_GEN_DP_1_api->IncrSrc          = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[3])+1;
425        TASK_GEN_DP_1_api->StartAddrDst     = &(TASK_GEN_DP_1_api->var[4]);
426        TASK_GEN_DP_1_api->IncrSrcMA        = (volatile sint16 *)&(TASK_GEN_DP_1_api->inc[4])+1;
427        TASK_GEN_DP_1_api->StartAddrSrc     = &(TASK_GEN_DP_1_api->var[5]);
428}
429
430
431void init_dma_image_TASK_GEN_DP_2(uint8 *taskBar, sint64 vMemOffset)
432{
433        uint8 *vMem_taskBar = (taskBar - vMemOffset);
434        TASK_GEN_DP_2_api->TaskNum          = 10;
435        TASK_GEN_DP_2_api->PtrStartTDT      = (volatile uint32 *)(vMem_taskBar + 0x0140UL);
436        TASK_GEN_DP_2_api->PtrEndTDT        = (volatile uint32 *)(vMem_taskBar + 0x0144UL);
437        TASK_GEN_DP_2_api->PtrVarTab        = (volatile uint32 *)(vMem_taskBar + 0x0148UL);
438        TASK_GEN_DP_2_api->PtrFDT           = (volatile uint32 *)(vMem_taskBar + 0x014cUL);
439        TASK_GEN_DP_2_api->PtrCSave         = (volatile uint32 *)(vMem_taskBar + 0x0158UL);
440        TASK_GEN_DP_2_api->TaskPragma       = (volatile uint8  *)(TASK_GEN_DP_2_api->PtrFDT)+3;
441        TASK_GEN_DP_2_api->NumDRD           = 4;
442        TASK_GEN_DP_2_api->DRD[0]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x000cUL - vMemOffset);
443        TASK_GEN_DP_2_api->DRD[1]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x0018UL - vMemOffset);
444        TASK_GEN_DP_2_api->DRD[2]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x0024UL - vMemOffset);
445        TASK_GEN_DP_2_api->DRD[3]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrStartTDT) + 0x002cUL - vMemOffset);
446        TASK_GEN_DP_2_api->NumVar           = 9;
447        TASK_GEN_DP_2_api->var              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrVarTab) - vMemOffset);
448        TASK_GEN_DP_2_api->NumInc           = 8;
449        TASK_GEN_DP_2_api->inc              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_2_api->PtrVarTab) + (4*24) - vMemOffset);
450        TASK_GEN_DP_2_api->Bytes            = &(TASK_GEN_DP_2_api->var[0]);
451        TASK_GEN_DP_2_api->IncrBytes        = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[0])+1;
452        TASK_GEN_DP_2_api->IterExtra        = &(TASK_GEN_DP_2_api->var[1]);
453        TASK_GEN_DP_2_api->IncrDst          = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[1])+1;
454        TASK_GEN_DP_2_api->IncrDstMA        = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[2])+1;
455        TASK_GEN_DP_2_api->IncrSrc          = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[3])+1;
456        TASK_GEN_DP_2_api->StartAddrDst     = &(TASK_GEN_DP_2_api->var[4]);
457        TASK_GEN_DP_2_api->IncrSrcMA        = (volatile sint16 *)&(TASK_GEN_DP_2_api->inc[4])+1;
458        TASK_GEN_DP_2_api->StartAddrSrc     = &(TASK_GEN_DP_2_api->var[5]);
459}
460
461
462void init_dma_image_TASK_GEN_DP_3(uint8 *taskBar, sint64 vMemOffset)
463{
464        uint8 *vMem_taskBar = (taskBar - vMemOffset);
465        TASK_GEN_DP_3_api->TaskNum          = 11;
466        TASK_GEN_DP_3_api->PtrStartTDT      = (volatile uint32 *)(vMem_taskBar + 0x0160UL);
467        TASK_GEN_DP_3_api->PtrEndTDT        = (volatile uint32 *)(vMem_taskBar + 0x0164UL);
468        TASK_GEN_DP_3_api->PtrVarTab        = (volatile uint32 *)(vMem_taskBar + 0x0168UL);
469        TASK_GEN_DP_3_api->PtrFDT           = (volatile uint32 *)(vMem_taskBar + 0x016cUL);
470        TASK_GEN_DP_3_api->PtrCSave         = (volatile uint32 *)(vMem_taskBar + 0x0178UL);
471        TASK_GEN_DP_3_api->TaskPragma       = (volatile uint8  *)(TASK_GEN_DP_3_api->PtrFDT)+3;
472        TASK_GEN_DP_3_api->NumDRD           = 4;
473        TASK_GEN_DP_3_api->DRD[0]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x000cUL - vMemOffset);
474        TASK_GEN_DP_3_api->DRD[1]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x0018UL - vMemOffset);
475        TASK_GEN_DP_3_api->DRD[2]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x0024UL - vMemOffset);
476        TASK_GEN_DP_3_api->DRD[3]           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrStartTDT) + 0x002cUL - vMemOffset);
477        TASK_GEN_DP_3_api->NumVar           = 9;
478        TASK_GEN_DP_3_api->var              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrVarTab) - vMemOffset);
479        TASK_GEN_DP_3_api->NumInc           = 8;
480        TASK_GEN_DP_3_api->inc              = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_3_api->PtrVarTab) + (4*24) - vMemOffset);
481        TASK_GEN_DP_3_api->Bytes            = &(TASK_GEN_DP_3_api->var[0]);
482        TASK_GEN_DP_3_api->IncrBytes        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[0])+1;
483        TASK_GEN_DP_3_api->IterExtra        = &(TASK_GEN_DP_3_api->var[1]);
484        TASK_GEN_DP_3_api->IncrDst          = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[1])+1;
485        TASK_GEN_DP_3_api->IncrDstMA        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[2])+1;
486        TASK_GEN_DP_3_api->IncrSrc          = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[3])+1;
487        TASK_GEN_DP_3_api->StartAddrDst     = &(TASK_GEN_DP_3_api->var[4]);
488        TASK_GEN_DP_3_api->IncrSrcMA        = (volatile sint16 *)&(TASK_GEN_DP_3_api->inc[4])+1;
489        TASK_GEN_DP_3_api->StartAddrSrc     = &(TASK_GEN_DP_3_api->var[5]);
490}
491
492
493void init_dma_image_TASK_GEN_TX_BD(uint8 *taskBar, sint64 vMemOffset)
494{
495        uint8 *vMem_taskBar = (taskBar - vMemOffset);
496        TASK_GEN_TX_BD_api->TaskNum         = 12;
497        TASK_GEN_TX_BD_api->PtrStartTDT     = (volatile uint32 *)(vMem_taskBar + 0x0180UL);
498        TASK_GEN_TX_BD_api->PtrEndTDT       = (volatile uint32 *)(vMem_taskBar + 0x0184UL);
499        TASK_GEN_TX_BD_api->PtrVarTab       = (volatile uint32 *)(vMem_taskBar + 0x0188UL);
500        TASK_GEN_TX_BD_api->PtrFDT          = (volatile uint32 *)(vMem_taskBar + 0x018cUL);
501        TASK_GEN_TX_BD_api->PtrCSave        = (volatile uint32 *)(vMem_taskBar + 0x0198UL);
502        TASK_GEN_TX_BD_api->TaskPragma      = (volatile uint8  *)(TASK_GEN_TX_BD_api->PtrFDT)+3;
503        TASK_GEN_TX_BD_api->NumDRD          = 8;
504        TASK_GEN_TX_BD_api->DRD[0]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0004UL - vMemOffset);
505        TASK_GEN_TX_BD_api->DRD[1]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x000cUL - vMemOffset);
506        TASK_GEN_TX_BD_api->DRD[2]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0010UL - vMemOffset);
507        TASK_GEN_TX_BD_api->DRD[3]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0014UL - vMemOffset);
508        TASK_GEN_TX_BD_api->DRD[4]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0020UL - vMemOffset);
509        TASK_GEN_TX_BD_api->DRD[5]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0028UL - vMemOffset);
510        TASK_GEN_TX_BD_api->DRD[6]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0030UL - vMemOffset);
511        TASK_GEN_TX_BD_api->DRD[7]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrStartTDT) + 0x0034UL - vMemOffset);
512        TASK_GEN_TX_BD_api->NumVar          = 13;
513        TASK_GEN_TX_BD_api->var             = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrVarTab) - vMemOffset);
514        TASK_GEN_TX_BD_api->NumInc          = 7;
515        TASK_GEN_TX_BD_api->inc             = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_TX_BD_api->PtrVarTab) + (4*24) - vMemOffset);
516        TASK_GEN_TX_BD_api->AddrDstFIFO     = &(TASK_GEN_TX_BD_api->var[0]);
517        TASK_GEN_TX_BD_api->IncrBytes       = (volatile sint16 *)&(TASK_GEN_TX_BD_api->inc[0])+1;
518        TASK_GEN_TX_BD_api->AddrEnable      = &(TASK_GEN_TX_BD_api->var[1]);
519        TASK_GEN_TX_BD_api->IncrSrc         = (volatile sint16 *)&(TASK_GEN_TX_BD_api->inc[1])+1;
520        TASK_GEN_TX_BD_api->BDTableBase     = &(TASK_GEN_TX_BD_api->var[2]);
521        TASK_GEN_TX_BD_api->IncrSrcMA       = (volatile sint16 *)&(TASK_GEN_TX_BD_api->inc[2])+1;
522        TASK_GEN_TX_BD_api->BDTableLast     = &(TASK_GEN_TX_BD_api->var[3]);
523        TASK_GEN_TX_BD_api->BDTableStart    = &(TASK_GEN_TX_BD_api->var[4]);
524        TASK_GEN_TX_BD_api->Bytes           = &(TASK_GEN_TX_BD_api->var[5]);
525}
526
527
528void init_dma_image_TASK_GEN_RX_BD(uint8 *taskBar, sint64 vMemOffset)
529{
530        uint8 *vMem_taskBar = (taskBar - vMemOffset);
531        TASK_GEN_RX_BD_api->TaskNum         = 13;
532        TASK_GEN_RX_BD_api->PtrStartTDT     = (volatile uint32 *)(vMem_taskBar + 0x01a0UL);
533        TASK_GEN_RX_BD_api->PtrEndTDT       = (volatile uint32 *)(vMem_taskBar + 0x01a4UL);
534        TASK_GEN_RX_BD_api->PtrVarTab       = (volatile uint32 *)(vMem_taskBar + 0x01a8UL);
535        TASK_GEN_RX_BD_api->PtrFDT          = (volatile uint32 *)(vMem_taskBar + 0x01acUL);
536        TASK_GEN_RX_BD_api->PtrCSave        = (volatile uint32 *)(vMem_taskBar + 0x01b8UL);
537        TASK_GEN_RX_BD_api->TaskPragma      = (volatile uint8  *)(TASK_GEN_RX_BD_api->PtrFDT)+3;
538        TASK_GEN_RX_BD_api->NumDRD          = 7;
539        TASK_GEN_RX_BD_api->DRD[0]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x0004UL - vMemOffset);
540        TASK_GEN_RX_BD_api->DRD[1]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x000cUL - vMemOffset);
541        TASK_GEN_RX_BD_api->DRD[2]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x0010UL - vMemOffset);
542        TASK_GEN_RX_BD_api->DRD[3]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x0014UL - vMemOffset);
543        TASK_GEN_RX_BD_api->DRD[4]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x0020UL - vMemOffset);
544        TASK_GEN_RX_BD_api->DRD[5]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x0028UL - vMemOffset);
545        TASK_GEN_RX_BD_api->DRD[6]          = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrStartTDT) + 0x002cUL - vMemOffset);
546        TASK_GEN_RX_BD_api->NumVar          = 12;
547        TASK_GEN_RX_BD_api->var             = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrVarTab) - vMemOffset);
548        TASK_GEN_RX_BD_api->NumInc          = 5;
549        TASK_GEN_RX_BD_api->inc             = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_RX_BD_api->PtrVarTab) + (4*24) - vMemOffset);
550        TASK_GEN_RX_BD_api->AddrEnable      = &(TASK_GEN_RX_BD_api->var[0]);
551        TASK_GEN_RX_BD_api->IncrBytes       = (volatile sint16 *)&(TASK_GEN_RX_BD_api->inc[0])+1;
552        TASK_GEN_RX_BD_api->AddrSrcFIFO     = &(TASK_GEN_RX_BD_api->var[1]);
553        TASK_GEN_RX_BD_api->IncrDst         = (volatile sint16 *)&(TASK_GEN_RX_BD_api->inc[1])+1;
554        TASK_GEN_RX_BD_api->BDTableBase     = &(TASK_GEN_RX_BD_api->var[2]);
555        TASK_GEN_RX_BD_api->BDTableLast     = &(TASK_GEN_RX_BD_api->var[3]);
556        TASK_GEN_RX_BD_api->BDTableStart    = &(TASK_GEN_RX_BD_api->var[4]);
557        TASK_GEN_RX_BD_api->Bytes           = &(TASK_GEN_RX_BD_api->var[5]);
558}
559
560
561void init_dma_image_TASK_GEN_DP_BD_0(uint8 *taskBar, sint64 vMemOffset)
562{
563        uint8 *vMem_taskBar = (taskBar - vMemOffset);
564        TASK_GEN_DP_BD_0_api->TaskNum       = 14;
565        TASK_GEN_DP_BD_0_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x01c0UL);
566        TASK_GEN_DP_BD_0_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x01c4UL);
567        TASK_GEN_DP_BD_0_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x01c8UL);
568        TASK_GEN_DP_BD_0_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x01ccUL);
569        TASK_GEN_DP_BD_0_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x01d8UL);
570        TASK_GEN_DP_BD_0_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_DP_BD_0_api->PtrFDT)+3;
571        TASK_GEN_DP_BD_0_api->NumDRD        = 7;
572        TASK_GEN_DP_BD_0_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x0004UL - vMemOffset);
573        TASK_GEN_DP_BD_0_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x000cUL - vMemOffset);
574        TASK_GEN_DP_BD_0_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x0010UL - vMemOffset);
575        TASK_GEN_DP_BD_0_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x0014UL - vMemOffset);
576        TASK_GEN_DP_BD_0_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x0024UL - vMemOffset);
577        TASK_GEN_DP_BD_0_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x002cUL - vMemOffset);
578        TASK_GEN_DP_BD_0_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrStartTDT) + 0x0030UL - vMemOffset);
579        TASK_GEN_DP_BD_0_api->NumVar        = 12;
580        TASK_GEN_DP_BD_0_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrVarTab) - vMemOffset);
581        TASK_GEN_DP_BD_0_api->NumInc        = 6;
582        TASK_GEN_DP_BD_0_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_0_api->PtrVarTab) + (4*24) - vMemOffset);
583        TASK_GEN_DP_BD_0_api->AddrEnable    = &(TASK_GEN_DP_BD_0_api->var[0]);
584        TASK_GEN_DP_BD_0_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_DP_BD_0_api->inc[0])+1;
585        TASK_GEN_DP_BD_0_api->BDTableBase   = &(TASK_GEN_DP_BD_0_api->var[1]);
586        TASK_GEN_DP_BD_0_api->IncrDst       = (volatile sint16 *)&(TASK_GEN_DP_BD_0_api->inc[1])+1;
587        TASK_GEN_DP_BD_0_api->BDTableLast   = &(TASK_GEN_DP_BD_0_api->var[2]);
588        TASK_GEN_DP_BD_0_api->IncrSrc       = (volatile sint16 *)&(TASK_GEN_DP_BD_0_api->inc[2])+1;
589        TASK_GEN_DP_BD_0_api->BDTableStart  = &(TASK_GEN_DP_BD_0_api->var[3]);
590        TASK_GEN_DP_BD_0_api->Bytes         = &(TASK_GEN_DP_BD_0_api->var[4]);
591}
592
593
594void init_dma_image_TASK_GEN_DP_BD_1(uint8 *taskBar, sint64 vMemOffset)
595{
596        uint8 *vMem_taskBar = (taskBar - vMemOffset);
597        TASK_GEN_DP_BD_1_api->TaskNum       = 15;
598        TASK_GEN_DP_BD_1_api->PtrStartTDT   = (volatile uint32 *)(vMem_taskBar + 0x01e0UL);
599        TASK_GEN_DP_BD_1_api->PtrEndTDT     = (volatile uint32 *)(vMem_taskBar + 0x01e4UL);
600        TASK_GEN_DP_BD_1_api->PtrVarTab     = (volatile uint32 *)(vMem_taskBar + 0x01e8UL);
601        TASK_GEN_DP_BD_1_api->PtrFDT        = (volatile uint32 *)(vMem_taskBar + 0x01ecUL);
602        TASK_GEN_DP_BD_1_api->PtrCSave      = (volatile uint32 *)(vMem_taskBar + 0x01f8UL);
603        TASK_GEN_DP_BD_1_api->TaskPragma    = (volatile uint8  *)(TASK_GEN_DP_BD_1_api->PtrFDT)+3;
604        TASK_GEN_DP_BD_1_api->NumDRD        = 7;
605        TASK_GEN_DP_BD_1_api->DRD[0]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x0004UL - vMemOffset);
606        TASK_GEN_DP_BD_1_api->DRD[1]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x000cUL - vMemOffset);
607        TASK_GEN_DP_BD_1_api->DRD[2]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x0010UL - vMemOffset);
608        TASK_GEN_DP_BD_1_api->DRD[3]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x0014UL - vMemOffset);
609        TASK_GEN_DP_BD_1_api->DRD[4]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x0024UL - vMemOffset);
610        TASK_GEN_DP_BD_1_api->DRD[5]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x002cUL - vMemOffset);
611        TASK_GEN_DP_BD_1_api->DRD[6]        = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrStartTDT) + 0x0030UL - vMemOffset);
612        TASK_GEN_DP_BD_1_api->NumVar        = 12;
613        TASK_GEN_DP_BD_1_api->var           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrVarTab) - vMemOffset);
614        TASK_GEN_DP_BD_1_api->NumInc        = 6;
615        TASK_GEN_DP_BD_1_api->inc           = (volatile uint32 *)(volatile uint32)(*(TASK_GEN_DP_BD_1_api->PtrVarTab) + (4*24) - vMemOffset);
616        TASK_GEN_DP_BD_1_api->AddrEnable    = &(TASK_GEN_DP_BD_1_api->var[0]);
617        TASK_GEN_DP_BD_1_api->IncrBytes     = (volatile sint16 *)&(TASK_GEN_DP_BD_1_api->inc[0])+1;
618        TASK_GEN_DP_BD_1_api->BDTableBase   = &(TASK_GEN_DP_BD_1_api->var[1]);
619        TASK_GEN_DP_BD_1_api->IncrDst       = (volatile sint16 *)&(TASK_GEN_DP_BD_1_api->inc[1])+1;
620        TASK_GEN_DP_BD_1_api->BDTableLast   = &(TASK_GEN_DP_BD_1_api->var[2]);
621        TASK_GEN_DP_BD_1_api->IncrSrc       = (volatile sint16 *)&(TASK_GEN_DP_BD_1_api->inc[2])+1;
622        TASK_GEN_DP_BD_1_api->BDTableStart  = &(TASK_GEN_DP_BD_1_api->var[3]);
623        TASK_GEN_DP_BD_1_api->Bytes         = &(TASK_GEN_DP_BD_1_api->var[4]);
624}
Note: See TracBrowser for help on using the repository browser.