annotate ppe/Menu.cc @ 3:8b4d6bf8c43d

add entry_head function
author yutaka@localhost.localdomain
date Wed, 07 Apr 2010 17:35:34 +0900
parents 1e1b0d280427
children 39d405bc46b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
yutaka@localhost.localdomain
parents:
diff changeset
1 #include <stdio.h>
yutaka@localhost.localdomain
parents:
diff changeset
2 #include <stdlib.h>
yutaka@localhost.localdomain
parents:
diff changeset
3 #include "Menu.h"
yutaka@localhost.localdomain
parents:
diff changeset
4 #include "Sys.h"
yutaka@localhost.localdomain
parents:
diff changeset
5 #include "params.h"
yutaka@localhost.localdomain
parents:
diff changeset
6
yutaka@localhost.localdomain
parents:
diff changeset
7 //headk_num と send_param_head の値を必ず返さないと、動作しない
yutaka@localhost.localdomain
parents:
diff changeset
8
2
yutaka@localhost.localdomain
parents: 1
diff changeset
9 task_head_t*
yutaka@localhost.localdomain
parents: 1
diff changeset
10 menu(int &list_num) {
0
yutaka@localhost.localdomain
parents:
diff changeset
11
2
yutaka@localhost.localdomain
parents: 1
diff changeset
12 list_num = SPE_NUM;
3
8b4d6bf8c43d add entry_head function
yutaka@localhost.localdomain
parents: 2
diff changeset
13 int all_task_num = SPE_NUM*10;
0
yutaka@localhost.localdomain
parents:
diff changeset
14 int task_size = 16*1024;
2
yutaka@localhost.localdomain
parents: 1
diff changeset
15
yutaka@localhost.localdomain
parents: 1
diff changeset
16 int in_size = (task_size - sizeof(task_head_t));
yutaka@localhost.localdomain
parents: 1
diff changeset
17 int out_size = (task_size - sizeof(task_head_t));
yutaka@localhost.localdomain
parents: 1
diff changeset
18
yutaka@localhost.localdomain
parents: 1
diff changeset
19 task_head_t *list_head = (task_head_t*)allocate(sizeof(task_head_t)*list_num);
0
yutaka@localhost.localdomain
parents:
diff changeset
20
2
yutaka@localhost.localdomain
parents: 1
diff changeset
21 int list_length = all_task_num / list_num;
yutaka@localhost.localdomain
parents: 1
diff changeset
22
yutaka@localhost.localdomain
parents: 1
diff changeset
23 for (int i = 0; i < list_num; i++) {
0
yutaka@localhost.localdomain
parents:
diff changeset
24
3
8b4d6bf8c43d add entry_head function
yutaka@localhost.localdomain
parents: 2
diff changeset
25 task_t *tail = entry_head(&list_head[i]);
0
yutaka@localhost.localdomain
parents:
diff changeset
26
2
yutaka@localhost.localdomain
parents: 1
diff changeset
27 for (int j = 0; j < list_length; j++) {
yutaka@localhost.localdomain
parents: 1
diff changeset
28
yutaka@localhost.localdomain
parents: 1
diff changeset
29 task_t *task = task_allocate(in_size, out_size);
yutaka@localhost.localdomain
parents: 1
diff changeset
30 int *in = (int*)task->input;
0
yutaka@localhost.localdomain
parents:
diff changeset
31
2
yutaka@localhost.localdomain
parents: 1
diff changeset
32 for (int k = 0; k < in_size / sizeof(int); k++) {
yutaka@localhost.localdomain
parents: 1
diff changeset
33 in[k] = k;
yutaka@localhost.localdomain
parents: 1
diff changeset
34 }
yutaka@localhost.localdomain
parents: 1
diff changeset
35
yutaka@localhost.localdomain
parents: 1
diff changeset
36 int pin_in = 0;
yutaka@localhost.localdomain
parents: 1
diff changeset
37 int pin_out = 0;
yutaka@localhost.localdomain
parents: 1
diff changeset
38
yutaka@localhost.localdomain
parents: 1
diff changeset
39 set_pin(task, pin_in, pin_out);
yutaka@localhost.localdomain
parents: 1
diff changeset
40 tail = add_list(tail, task);
yutaka@localhost.localdomain
parents: 1
diff changeset
41
0
yutaka@localhost.localdomain
parents:
diff changeset
42 }
yutaka@localhost.localdomain
parents:
diff changeset
43
yutaka@localhost.localdomain
parents:
diff changeset
44 }
yutaka@localhost.localdomain
parents:
diff changeset
45
yutaka@localhost.localdomain
parents:
diff changeset
46 printf("return run\n");
yutaka@localhost.localdomain
parents:
diff changeset
47
2
yutaka@localhost.localdomain
parents: 1
diff changeset
48 return list_head;
0
yutaka@localhost.localdomain
parents:
diff changeset
49
yutaka@localhost.localdomain
parents:
diff changeset
50 }