Mercurial > hg > Members > yutaka > manager
diff ppe/Menu.cc @ 7:febf899d0043
mandelbrot
author | yutaka@localhost.localdomain |
---|---|
date | Mon, 12 Apr 2010 00:32:34 +0900 |
parents | 39d405bc46b7 |
children | ec2c1003f9b6 |
line wrap: on
line diff
--- a/ppe/Menu.cc Sat Apr 10 16:50:55 2010 +0900 +++ b/ppe/Menu.cc Mon Apr 12 00:32:34 2010 +0900 @@ -14,27 +14,26 @@ fb_t fb = get_fbdev_addr(); int max_size = MAX_DMA_SIZE - sizeof(task_head_t); - int all_task_num = fb.height; + int all_line_num = fb.height; int line_size = fb.width * fb.bpp / DIV_BYTE; // line num per task int lnpt = max_size / line_size; int out_size = lnpt * line_size; - int list_length = (all_task_num / list_num) / lnpt; + int list_length = (all_line_num / list_num) / lnpt; int in_size = sizeof(int)*4; int real_in_size = sizeof(int)*2; task_head_t *list_head = (task_head_t*)allocate(sizeof(task_head_t)*list_num); + task_t **tail = (task_t**)allocate(sizeof(task_t*)*list_num); int index = 0; - for (int i = 0; i < list_num; i++) { - - task_t *head = entry_head(&list_head[i]); - - for (int j = 0; j < list_length; j++) { - + tail[i] = entry_head(&list_head[i]); + } + + for (int i = 0; i < all_line_num / lnpt; i++) { task_t *task = task_allocate(in_size, 0); task->head->ea_out = (unsigned long long) (unsigned long) &fb.pixels[index*out_size]; task->head->size_out = out_size; @@ -47,13 +46,37 @@ int pin_out = 0; set_pin(task, pin_in, pin_out); - head = add_list(head, task); + tail[i%list_num] = add_list(tail[i%list_num], task); index++; - } + } + +// for (int i = 0; i < list_num; i++) { + +// task_t *head = entry_head(&list_head[i]); + +// for (int j = 0; j < list_length; j++) { + +// task_t *task = task_allocate(in_size, 0); +// task->head->ea_out = (unsigned long long) (unsigned long) &fb.pixels[index*out_size]; +// task->head->size_out = out_size; +// int *in = (int*)task->input; - } +// in[0] = index*out_size; +// in[1] = (index+1)*out_size; + +// int pin_in = in_size - real_in_size; +// int pin_out = 0; + +// set_pin(task, pin_in, pin_out); +// head = add_list(head, task); + +// index++; + +// } + +// } printf("return run\n");