MCPcopy Create free account
hub / github.com/1a1a11a/libCacheSim / lcsReader_setup

Function lcsReader_setup

libCacheSim/traceReader/customizedReader/lcs.c:80–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80int lcsReader_setup(reader_t *reader) {
81 char *data = read_bytes(reader, sizeof(lcs_trace_header_t));
82 lcs_trace_header_t *header = (lcs_trace_header_t *)data;
83
84 if (!_verify_lcs_header(header)) {
85 exit(1);
86 }
87
88 reader->lcs_ver = header->version;
89 reader->trace_type = LCS_TRACE;
90 reader->trace_format = BINARY_TRACE_FORMAT;
91 reader->trace_start_offset = sizeof(lcs_trace_header_t);
92 reader->obj_id_is_num = true;
93 reader->n_total_req = header->stat.n_req;
94
95 if (reader->lcs_ver == 1) {
96 reader->item_size = sizeof(lcs_req_v1_t);
97 } else if (reader->lcs_ver == 2) {
98 reader->item_size = sizeof(lcs_req_v2_t);
99 } else if (reader->lcs_ver == 3) {
100 reader->item_size = sizeof(lcs_req_v3_t);
101 } else if (reader->lcs_ver == 4) {
102 reader->item_size = sizeof(lcs_req_v4_t);
103 assert(LCS_VER_TO_N_FEATURES[4] == 1);
104 } else if (reader->lcs_ver == 5) {
105 reader->item_size = sizeof(lcs_req_v5_t);
106 assert(LCS_VER_TO_N_FEATURES[5] == 2);
107 } else if (reader->lcs_ver == 6) {
108 reader->item_size = sizeof(lcs_req_v6_t);
109 assert(LCS_VER_TO_N_FEATURES[6] == 4);
110 } else if (reader->lcs_ver == 7) {
111 reader->item_size = sizeof(lcs_req_v7_t);
112 assert(LCS_VER_TO_N_FEATURES[7] == 8);
113 } else if (reader->lcs_ver == 8) {
114 reader->item_size = sizeof(lcs_req_v8_t);
115 assert(LCS_VER_TO_N_FEATURES[8] == 16);
116 } else {
117 ERROR("invalid lcs version %ld\n", (unsigned long)reader->lcs_ver);
118 exit(1);
119 }
120
121 DEBUG("setup lcs reader %s, version %ld, item size %ld\n", reader->trace_path, (unsigned long)reader->lcs_ver,
122 (unsigned long)reader->item_size);
123 return 0;
124}
125
126// read one request from trace file
127// return 0 if success, 1 if error

Callers 1

setup_readerFunction · 0.85

Calls 3

read_bytesFunction · 0.85
_verify_lcs_headerFunction · 0.85
assertFunction · 0.85

Tested by

no test coverage detected