comparison ppe/Menu.cc @ 7:febf899d0043

mandelbrot
author yutaka@localhost.localdomain
date Mon, 12 Apr 2010 00:32:34 +0900
parents 39d405bc46b7
children ec2c1003f9b6
comparison
equal deleted inserted replaced
6:b25035e3282d 7:febf899d0043
12 12
13 list_num = SPE_NUM; 13 list_num = SPE_NUM;
14 14
15 fb_t fb = get_fbdev_addr(); 15 fb_t fb = get_fbdev_addr();
16 int max_size = MAX_DMA_SIZE - sizeof(task_head_t); 16 int max_size = MAX_DMA_SIZE - sizeof(task_head_t);
17 int all_task_num = fb.height; 17 int all_line_num = fb.height;
18 int line_size = fb.width * fb.bpp / DIV_BYTE; 18 int line_size = fb.width * fb.bpp / DIV_BYTE;
19 19
20 // line num per task 20 // line num per task
21 int lnpt = max_size / line_size; 21 int lnpt = max_size / line_size;
22 int out_size = lnpt * line_size; 22 int out_size = lnpt * line_size;
23 int list_length = (all_task_num / list_num) / lnpt; 23 int list_length = (all_line_num / list_num) / lnpt;
24 24
25 int in_size = sizeof(int)*4; 25 int in_size = sizeof(int)*4;
26 int real_in_size = sizeof(int)*2; 26 int real_in_size = sizeof(int)*2;
27 27
28 task_head_t *list_head = (task_head_t*)allocate(sizeof(task_head_t)*list_num); 28 task_head_t *list_head = (task_head_t*)allocate(sizeof(task_head_t)*list_num);
29 task_t **tail = (task_t**)allocate(sizeof(task_t*)*list_num);
29 30
30 int index = 0; 31 int index = 0;
31
32 for (int i = 0; i < list_num; i++) { 32 for (int i = 0; i < list_num; i++) {
33 33 tail[i] = entry_head(&list_head[i]);
34 task_t *head = entry_head(&list_head[i]); 34 }
35 35
36 for (int j = 0; j < list_length; j++) { 36 for (int i = 0; i < all_line_num / lnpt; i++) {
37
38 task_t *task = task_allocate(in_size, 0); 37 task_t *task = task_allocate(in_size, 0);
39 task->head->ea_out = (unsigned long long) (unsigned long) &fb.pixels[index*out_size]; 38 task->head->ea_out = (unsigned long long) (unsigned long) &fb.pixels[index*out_size];
40 task->head->size_out = out_size; 39 task->head->size_out = out_size;
41 int *in = (int*)task->input; 40 int *in = (int*)task->input;
42 41
45 44
46 int pin_in = in_size - real_in_size; 45 int pin_in = in_size - real_in_size;
47 int pin_out = 0; 46 int pin_out = 0;
48 47
49 set_pin(task, pin_in, pin_out); 48 set_pin(task, pin_in, pin_out);
50 head = add_list(head, task); 49 tail[i%list_num] = add_list(tail[i%list_num], task);
51 50
52 index++; 51 index++;
53 52
54 } 53 }
54
55 // for (int i = 0; i < list_num; i++) {
55 56
56 } 57 // task_t *head = entry_head(&list_head[i]);
58
59 // for (int j = 0; j < list_length; j++) {
60
61 // task_t *task = task_allocate(in_size, 0);
62 // task->head->ea_out = (unsigned long long) (unsigned long) &fb.pixels[index*out_size];
63 // task->head->size_out = out_size;
64 // int *in = (int*)task->input;
65
66 // in[0] = index*out_size;
67 // in[1] = (index+1)*out_size;
68
69 // int pin_in = in_size - real_in_size;
70 // int pin_out = 0;
71
72 // set_pin(task, pin_in, pin_out);
73 // head = add_list(head, task);
74
75 // index++;
76
77 // }
78
79 // }
57 80
58 printf("return run\n"); 81 printf("return run\n");
59 82
60 //munmap(fb.pixels, fb.size); 83 //munmap(fb.pixels, fb.size);
61 //close(fb.fd); 84 //close(fb.fd);