comparison TaskManager/Fifo/FifoDmaManager.cc @ 3:2356238ebea7

*** empty log message ***
author gongo
date Tue, 05 Feb 2008 20:22:50 +0900
parents
children 41ccd4b38184 001583879ac3
comparison
equal deleted inserted replaced
2:70e9baa00f51 3:2356238ebea7
1 #include <stdio.h>
2 #include <string.h>
3 #include "FifoDmaManager.h"
4
5 void
6 FifoDmaManager::dma_load(void *buf, unsigned int addr, int size, int mask)
7 {
8 memcpy(buf, (void*)addr, size);
9 }
10
11 void
12 FifoDmaManager::dma_store(void *buf, unsigned int addr, int size, int mask)
13 {
14 memcpy((void*)addr, buf, size);
15 }
16
17 /**
18 * mask で設定した DMA 転送の完了を待つ
19 */
20 void
21 FifoDmaManager::dma_wait(int mask)
22 {
23 //spu_writech(MFC_WrTagMask, 1 << mask);
24 //spu_mfcstat(MFC_TAG_UPDATE_ALL);
25 }
26
27 void
28 FifoDmaManager::mail_write(unsigned int data)
29 {
30 //spu_writech(SPU_WrOutMbox, data);
31
32 mail_sendQueue = append_mailQueue(mail_sendQueue,
33 mailManager->create_mail(data));
34 }
35
36 unsigned int
37 FifoDmaManager::mail_read(void)
38 {
39 MailQueuePtr q;
40 unsigned int ret;
41
42 q = mail_recvQueue;
43
44 if (q == NULL) {
45 return 0; // error か 正しい値か判断できないな・・・
46 }
47
48 mail_recvQueue = mail_recvQueue->next;
49
50 ret = q->data;
51 mailManager->free_mailQueue(q);
52
53 return ret;
54 }