annotate example/ResizeWritebuf/main.cc @ 1813:d7973604e81f draft

fix memin size
author kkb
date Thu, 12 Dec 2013 18:34:16 +0900
parents 8d2a1f5edf10
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <string.h>
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "TaskManager.h"
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
5 #include "Container.h"
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include "Func.h"
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
1102
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
8 #define CONTAINER_DATA_SIZE 4096
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
9
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 extern void task_init(void);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 static int count = 1;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 static int spe_num = 1;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 static int data_size = 10;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 static int data_length = 1;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 extern TaskManager *manager;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 const char *usr_help_str = "Usage: ./resize [-cpu spe_num] [-count N]\n\
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 -cpu Number of SPE (default 1) \n\
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 -count Number of task is print \"Hello, World!!\"";
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 int
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 init(int argc, char **argv)
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 for (int i = 1; argv[i]; ++i) {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 if (strcmp(argv[i], "-count") == 0) {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 count = atoi(argv[++i]);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 } else if (strcmp(argv[i], "-cpu") == 0) {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 spe_num = atoi(argv[i+1]);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 } else if (strcmp(argv[i], "-length") == 0) {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 data_length = atoi(argv[++i]);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 return 0;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
40 static void
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 checkData(SchedTask *s, void *data, void *arg1)
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 {
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
43 ContainerPtr obj = (ContainerPtr)data;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
44 int data_length = obj->length;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
45
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
46 for(int i =0;i <data_length;i++) {
1102
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
47 int idata = obj->data[i];
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
48 printf("data[%d] = %d\n", i, idata);
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
50
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 free(data);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
55 static void
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 resize_init(TaskManager *manager)
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 {
1100
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1099
diff changeset
58 HTaskPtr resize_task = manager->create_task(RESIZE);
1102
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
59 ContainerPtr obj = (ContainerPtr)manager->allocate(CONTAINER_DATA_SIZE);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
60 obj->length = 0;
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61
1102
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
62 resize_task->set_param(0, (memaddr)data_length);
1099
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 resize_task->set_outData(0, obj, 0);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 resize_task->set_post(checkData, (void*)obj, NULL);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 resize_task->set_cpu(SPE_ANY);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 resize_task->spawn();
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 int
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 TMmain(TaskManager *manager, int argc, char *argv[])
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 if (init(argc, argv) < 0) {
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 return -1;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 // Task Register
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 // ppe/task_init.cc
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 task_init();
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 resize_init(manager);
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 return 0;
3b3b535baa51 add resize wbuff example.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 }