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

Function setup_reader

libCacheSim/traceReader/reader.c:42–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40// #endif
41
42reader_t *setup_reader(const char *const trace_path,
43 const trace_type_e trace_type,
44 const reader_init_param_t *const init_params) {
45 static bool _info_printed = false;
46
47 int fd;
48 struct stat st;
49 reader_t *const reader = (reader_t *)malloc(sizeof(reader_t));
50 memset(reader, 0, sizeof(reader_t));
51 reader->reader_params = NULL;
52
53 /* check whether the trace is a zstd trace file,
54 * currently zstd reader only supports a few binary trace */
55 reader->is_zstd_file = false;
56 reader->zstd_reader_p = NULL;
57#ifdef SUPPORT_ZSTD_TRACE
58 size_t slen = strlen(trace_path);
59 if (strncmp(trace_path + (slen - 4), ".zst", 4) == 0) {
60 reader->is_zstd_file = true;
61 reader->zstd_reader_p = create_zstd_reader(trace_path);
62 if (!_info_printed) {
63 VERBOSE("opening a zstd compressed data\n");
64 }
65 }
66#endif
67
68 reader->trace_format = INVALID_TRACE_FORMAT;
69 reader->trace_type = trace_type;
70 reader->n_total_req = 0;
71 reader->n_read_req = 0;
72 reader->ignore_size_zero_req = true;
73 reader->ignore_obj_size = false;
74 reader->cloned = false;
75 reader->item_size = 0;
76 reader->obj_id_is_num = false;
77 reader->obj_id_is_num_set = false;
78 reader->mapped_file = NULL;
79 reader->mmap_offset = 0;
80 reader->sampler = NULL;
81 reader->trace_start_offset = 0;
82 reader->read_direction = READ_FORWARD;
83 reader->n_req_left = 0;
84 reader->last_req_clock_time = -1;
85
86 if (init_params != NULL) {
87 memcpy(&reader->init_params, init_params, sizeof(reader_init_param_t));
88 if (init_params->binary_fmt_str != NULL)
89 reader->init_params.binary_fmt_str = strdup(init_params->binary_fmt_str);
90
91 reader->ignore_obj_size = init_params->ignore_obj_size;
92 reader->ignore_size_zero_req = init_params->ignore_size_zero_req;
93 reader->obj_id_is_num = init_params->obj_id_is_num;
94 reader->obj_id_is_num_set = init_params->obj_id_is_num_set;
95 reader->trace_start_offset = init_params->trace_start_offset;
96 reader->mmap_offset = init_params->trace_start_offset;
97 reader->cap_at_n_req = init_params->cap_at_n_req;
98 reader->block_size = init_params->block_size;
99 if (init_params->sampler != NULL)

Callers 15

setup_vscsi_readerFunction · 0.85
setup_binary_readerFunction · 0.85
setup_csv_reader_obj_strFunction · 0.85
setup_csv_reader_obj_numFunction · 0.85
test_twrFunction · 0.85
clone_readerFunction · 0.85

Calls 14

create_zstd_readerFunction · 0.85
assertFunction · 0.85
csv_setup_readerFunction · 0.85
check_delimiterFunction · 0.85
binaryReader_setupFunction · 0.85
vscsiReader_setupFunction · 0.85
twrReader_setupFunction · 0.85
twrNSReader_setupFunction · 0.85
oracleGeneralBin_setupFunction · 0.85
oracleSimTwrBin_setupFunction · 0.85
oracleSysTwrNSBin_setupFunction · 0.85
oracleSimTwrNSBin_setupFunction · 0.85

Tested by 1

test_twrFunction · 0.68