comparison TaskManager/Cell/CellTaskManagerImpl.cc @ 640:a909c50081c2

SimpeTask on Cell worked.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 20 Nov 2009 23:12:34 +0900
parents 671fca057ad3
children 7c9ded1ea750
comparison
equal deleted inserted replaced
639:70c5c2d2eb24 640:a909c50081c2
170 * PPE 側で動く Scheduler からのメールリスト 170 * PPE 側で動く Scheduler からのメールリスト
171 * この中で PPE 側の mail check も行う 171 * この中で PPE 側の mail check も行う
172 * 172 *
173 * @return PPE Scheduler に対してのメール。 173 * @return PPE Scheduler に対してのメール。
174 * 次に実行する TaskList のアドレスや、終了コマンドを送る 174 * 次に実行する TaskList のアドレスや、終了コマンドを送る
175 */TaskListPtr 175 */
176
177 TaskListPtr
176 CellTaskManagerImpl::mail_check(MailQueuePtr mail_list) 178 CellTaskManagerImpl::mail_check(MailQueuePtr mail_list)
177 { 179 {
178 // PPE Scheduler からの mail check 180 // PPE Scheduler からの mail check
179 ppeManager->mail_check(mail_list, waitTaskQueue); 181 ppeManager->mail_check(mail_list, waitTaskQueue);
180 182
282 284
283 speThreads->send_mail(id, 1, (memaddr *)&speTaskList[id]); 285 speThreads->send_mail(id, 1, (memaddr *)&speTaskList[id]);
284 flag_sendTaskList[id] = 0; 286 flag_sendTaskList[id] = 0;
285 } 287 }
286 288
287 #if 0
288 void*
289 CellTaskManagerImpl::allocate(int size, int alignment)
290 {
291 if (size==0) return 0;
292 void *buff;
293 posix_memalign(&buff, alignment, size);
294 return buff;
295 }
296
297 void*
298 CellTaskManagerImpl::allocate(int size)
299 {
300 if (size==0) return 0;
301 void *buff;
302
303 posix_memalign(&buff, DEFAULT_ALIGNMENT, size);
304
305 // bzero はコストが高いのでやりたくない
306 // bzero(buff, size);
307
308 return buff;
309 }
310
311 Scheduler*
312 CellTaskManagerImpl::get_scheduler()
313 {
314 return ppeManager->get_scheduler();
315 }
316 #endif
317 289
318 #ifdef __CERIUM_CELL__ 290 #ifdef __CERIUM_CELL__
319 TaskManagerImpl* 291 TaskManagerImpl*
320 create_impl(int num) 292 create_impl(int num)
321 { 293 {