comparison TaskManager/Cell/spe/CellDmaManager.cc @ 1023:5245cf19775d

comment remove
author yutaka@localhost.localdomain
date Sun, 07 Nov 2010 22:18:41 +0900
parents f8e9c985e2a8
children 19a57960c436
comparison
equal deleted inserted replaced
1022:43808a098020 1023:5245cf19775d
87 //ので多少は効果あるといいな。 87 //ので多少は効果あるといいな。
88 void CellDmaManager::mail_write_queue(memaddr data) 88 void CellDmaManager::mail_write_queue(memaddr data)
89 { 89 {
90 (this->*start_dmawait_profile)(); 90 (this->*start_dmawait_profile)();
91 if (0 != spu_readchcnt(SPU_WrOutMbox)) { 91 if (0 != spu_readchcnt(SPU_WrOutMbox)) {
92 //if (mail_queue->empty()) {
93 if (mail_queue->count()) { 92 if (mail_queue->count()) {
94 spu_write_out_mbox((uint32)data); 93 spu_write_out_mbox((uint32)data);
95 } else { 94 } else {
96 /*
97 MailQueuePtr mail = mail_queue->poll();
98 spu_write_out_mbox((uint32)mail->data);
99 mail_queue->free_(mail);
100 mail = mail_queue->create();
101 mail->data = data;
102 mail_queue->addLast(mail);
103 */
104 95
105 //mail_queue から poll する 96 //mail_queue から poll する
106 spu_write_out_mbox((uint32)mail_queue->recv()); 97 spu_write_out_mbox((uint32)mail_queue->recv());
107 //mail_queue に加える 98 //mail_queue に加える
108 mail_queue->send(data); 99 mail_queue->send(data);
109 100
110 } 101 }
111 } else { 102 } else {
112 /*
113 MailQueuePtr mail = mail_queue->create();
114 mail->data = data;
115 mail_queue->addLast(mail);
116 */
117 103
118 mail_queue->send(data); 104 mail_queue->send(data);
119 105
120 } 106 }
121 (this->*end_dmawait_profile)(&global_mail_time); 107 (this->*end_dmawait_profile)(&global_mail_time);
125 void CellDmaManager::mail_write_finish_list(memaddr data) 111 void CellDmaManager::mail_write_finish_list(memaddr data)
126 { 112 {
127 113
128 (this->*start_dmawait_profile)(); 114 (this->*start_dmawait_profile)();
129 115
130 //while (!mail_queue->empty()) {
131 while (mail_queue->count()) { 116 while (mail_queue->count()) {
132 /*
133 MailQueuePtr mail = mail_queue->poll();
134 spu_write_out_mbox((uint32)mail->data);
135 mail_queue->free_(mail);
136 */
137 117
138 spu_write_out_mbox((uint32)mail_queue->recv()); 118 spu_write_out_mbox((uint32)mail_queue->recv());
139 119
140 } 120 }
141 121
142 spu_write_out_mbox((uint32)data); 122 spu_write_out_mbox((uint32)data);
143 //mail_queue.freePool();
144 123
145 (this->*end_dmawait_profile)(&global_mail_time); 124 (this->*end_dmawait_profile)(&global_mail_time);
146 } 125 }
147 126
148 memaddr CellDmaManager::mail_read() 127 memaddr CellDmaManager::mail_read()