Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Fifo/FifoDmaManager.cc @ 1048:40cde8c1a6cd default tip
add ScaleXY (not for allExecute...)
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 08 Dec 2010 06:22:15 +0900 |
parents | 7c9ded1ea750 |
children |
rev | line source |
---|---|
109 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
3 #include <string.h> | |
4 #include "FifoDmaManager.h" | |
5 | |
6 void | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
7 FifoDmaManager::dma_load(void *buf, memaddr addr, uint32 size, uint32 mask) |
109 | 8 { |
9 if (size == 0) return; | |
10 memcpy(buf, (void*)addr, size); | |
11 } | |
12 | |
13 void | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
14 FifoDmaManager::dma_store(void *buf, memaddr addr, uint32 size, uint32 mask) |
109 | 15 { |
16 if (size == 0) return; | |
17 memcpy((void*)addr, buf, size); | |
18 } | |
19 | |
20 /** | |
321 | 21 * mask で設定した DMA 転送の完了を待つ |
109 | 22 */ |
23 void | |
24 FifoDmaManager::dma_wait(uint32 mask) | |
25 { | |
26 } | |
27 | |
28 | |
29 void | |
30 FifoDmaManager::dma_loadList(ListDataPtr list, void *buff, uint32 mask) | |
31 { | |
32 int list_size = list->length; | |
602
1733f3cbfa28
64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
33 long bound; |
109 | 34 |
602
1733f3cbfa28
64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
35 bound = (long)(buff); |
109 | 36 |
37 for (int i = 0; i < list_size; i++) { | |
38 ListElementPtr elm = &list->element[i]; | |
39 memcpy((void*)bound, (void*)elm->addr, elm->size); | |
40 bound += elm->size; | |
41 } | |
42 } | |
43 | |
44 | |
45 void | |
46 FifoDmaManager::dma_storeList(ListDataPtr list, void *buff, uint32 mask) | |
47 { | |
48 int list_size = list->length; | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
49 memaddr bound; |
109 | 50 |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
51 bound = (memaddr)(buff); |
109 | 52 |
53 for (int i = 0; i < list_size; i++) { | |
54 ListElementPtr elm = &list->element[i]; | |
55 memcpy((void*)elm->addr, (void*)bound, elm->size); | |
56 bound += elm->size; | |
57 } | |
58 } | |
643 | 59 |
60 /* end */ |