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