Add proper per-file copyright notices/licenses and top-level license.
[bluesky.git] / TBBT / trace_play / generate_xmgr.c.old
1 #include <stdio.h>
2 main(int argc, char ** argv)
3 {
4         char line[1024];
5         FILE * fp;
6         unsigned long long distance;
7         unsigned long long tll;
8         int avg_frag_distance = 0;
9 #define SEQ_NUM 11
10         int frag_num[SEQ_NUM], td_MB[SEQ_NUM], td[SEQ_NUM], tblock_num[SEQ_NUM], file_num;
11         int max_blockno=0, avg_block_distance=0;
12         char * p;
13         int sequence[SEQ_NUM]={1,2,5,10,20,30,50,100,200,250,500};
14         int i;
15         int file_ratio, active_ratio, chunk_num, fs_size_MB;
16         char fhmap[1024];
17
18         fp = fopen (argv[1], "r");
19         if (!fp) {
20                 perror("open"); 
21                 exit(-1);
22         }
23         i=-1;
24         while (fgets(line, sizeof(line), fp)) {
25                 if (feof(fp))
26                         break;
27                 if (strstr(line, "==>")) {
28                         if (i!=-1) {
29                                 printf("error 1\n");
30                                 exit(-1);
31                         }
32                         p = strrchr (line, '/');
33                         if (p==NULL)
34                                 p=line;
35                         p = strchr (p, '_');
36                         if (p==NULL) {
37                                 printf("error 2\n");
38                                 exit(-1);
39                         }
40                         sscanf (p, "_%d_%d_%d_%d_%s.5 <==\n", &file_ratio, &active_ratio, &chunk_num, &fs_size_MB, fhmap);
41                         i = chunk_num;
42                 }
43                 if (strstr(line, "****")) {
44                         if (i==-1) {
45                                 printf("error 3\n");
46                                 exit(-1);
47                         }
48                         sscanf(line, "****total FRAG_NUM %d td_MB %d td %d tblock_num %d max_blockno %d file_num %d avg_frag_distance %d avg_block_distance %d", &frag_num[0], &td_MB[0], &td[0],  &tblock_num[0], &max_blockno, &file_num, &avg_frag_distance, &avg_block_distance);
49
50 #ifdef checkit
51                         distance = td_MB[0];
52                         distance *=1000000;
53                         distance +=td[0];
54                         tll = frag_num[0];
55                         distance /= frag_num[0];
56
57                         if (distance > 1000000000) {
58                                 printf ("error 4\n");
59                                 exit(-1);
60                         }
61                         avg_frag_distance = distance;
62                         printf("%d %d %d %d %d\n", chunk_num, frag_num[0], avg_frag_distance, td_MB[0], tblock_num[0]);
63 #else
64                         printf("%d %d %d %d %d %d\n", chunk_num, frag_num[0], avg_frag_distance, td_MB[0], tblock_num[0], avg_block_distance);
65 #endif
66                         i = -1;
67                 } 
68         }
69 }
70