Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Fifo/FifoDmaManager.h @ 767:e4d635b1f018
add spe/univers_move
author | hiroki@henri.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sat, 13 Feb 2010 17:33:38 +0900 |
parents | 7c9ded1ea750 |
children | 18a548c337cb |
rev | line source |
---|---|
3 | 1 #ifndef INCLUDED_FIFO_DMA_MANAGER |
2 #define INCLUDED_FIFO_DMA_MANAGER | |
3 | |
307 | 4 #include "base.h" |
5 #include "DmaManager.h" | |
6 #include "MailManager.h" | |
3 | 7 |
8 class FifoDmaManager : public DmaManager { | |
647
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
9 |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
10 protected: |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
11 /* variables */ |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
12 MailManagerPtr mail_queue1; |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
13 MailManagerPtr mail_queue2; |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
14 |
3 | 15 public: |
109 | 16 BASE_NEW_DELETE(FifoDmaManager); |
17 | |
647
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
18 FifoDmaManager() { |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
19 mail_queue1 = new MailManager(); |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
20 mail_queue2 = new MailManager(); |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
21 } |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
22 |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
23 ~FifoDmaManager() { |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
24 delete mail_queue1; |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
25 delete mail_queue2; |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
26 } |
3 | 27 |
28 /* functions */ | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
29 void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); |
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
30 void dma_store(void *buf, memaddr addr, uint32 size, uint32 mask); |
88 | 31 void dma_wait(uint32 mask) ; |
3 | 32 |
647
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
33 void mail_write(memaddr data) { mail_queue1->send(data); } |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
34 memaddr mail_read() { return mail_queue2->recv(); } |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
35 |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
36 void mail_write_from_host(memaddr data) { mail_queue2->send(data); } |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
37 memaddr mail_read_from_host() { return mail_queue1->recv(); } |
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
38 int has_mail_from_host() { return mail_queue1->count(); } |
109 | 39 |
40 void dma_loadList(ListDataPtr list, void *buff, uint32 mask); | |
41 void dma_storeList(ListDataPtr, void *buff, uint32 mask); | |
647
7c9ded1ea750
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
42 |
3 | 43 }; |
44 | |
45 #endif |