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

Function parse_opt

libCacheSim/bin/traceAnalyzer/cli_parser.cpp:122–211  ·  view source on GitHub ↗

PARSER. Field 2 in ARGP. Order of parameters: KEY, ARG, STATE. */

Source from the content-addressed store, hash-verified

120 Order of parameters: KEY, ARG, STATE.
121*/
122static error_t parse_opt(int key, char *arg, struct argp_state *state) {
123 struct arguments *arguments =
124 reinterpret_cast<struct arguments *>(state->input);
125
126 switch (key) {
127 case OPTION_TRACE_TYPE_PARAMS:
128 arguments->trace_type_params = arg;
129 break;
130 case OPTION_OUTPUT_PATH:
131 strncpy(arguments->ofilepath, arg, OFILEPATH_LEN - 1);
132 arguments->ofilepath[OFILEPATH_LEN - 1] = '\0';
133 break;
134 case OPTION_NUM_REQ:
135 arguments->n_req = atoll(arg);
136 break;
137 case OPTION_TIME_WINDOW:
138 arguments->analysis_param.time_window = atoi(arg);
139 break;
140 case OPTION_WARMUP_SEC:
141 arguments->analysis_param.warmup_time = atoi(arg);
142 break;
143 case OPTION_ACCESS_PATTERN_SAMPLE_RATIO:
144 arguments->analysis_param.access_pattern_sample_ratio = atof(arg);
145 arguments->analysis_param.access_pattern_sample_ratio_inv =
146 (int)(1.0 / arguments->analysis_param.access_pattern_sample_ratio) +
147 1;
148 break;
149 case OPTION_TRACK_N_HIT:
150 arguments->analysis_param.track_n_hit = atoi(arg);
151 break;
152 case OPTION_ENABLE_ALL:
153 arguments->analysis_option.req_rate = true;
154 arguments->analysis_option.access_pattern = true;
155 arguments->analysis_option.size = true;
156 arguments->analysis_option.reuse = true;
157 arguments->analysis_option.popularity = true;
158 arguments->analysis_option.popularity_decay = true;
159 break;
160 case OPTION_ENABLE_COMMON:
161 arguments->analysis_option.req_rate = true;
162 arguments->analysis_option.access_pattern = true;
163 arguments->analysis_option.size = true;
164 arguments->analysis_option.reuse = true;
165 arguments->analysis_option.popularity = true;
166 break;
167 case OPTION_ENABLE_POPULARITY:
168 arguments->analysis_option.popularity = true;
169 break;
170 case OPTION_ENABLE_POPULARITY_DECAY:
171 arguments->analysis_option.popularity_decay = true;
172 break;
173 case OPTION_ENABLE_REUSE:
174 arguments->analysis_option.reuse = true;
175 break;
176 case OPTION_ENABLE_SIZE:
177 arguments->analysis_option.size = true;
178 break;
179 case OPTION_ENABLE_REQ_RATE:

Callers

nothing calls this directly

Calls 3

atoiFunction · 0.85
atofFunction · 0.85
is_trueFunction · 0.85

Tested by

no test coverage detected