MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pipeline_selector_group_member_read

Function pipeline_selector_group_member_read

dpdk/examples/pipeline/cli.c:1299–1390  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1297}
1298
1299static int
1300pipeline_selector_group_member_read(const char *string,
1301 uint32_t *group_id,
1302 uint32_t *member_id,
1303 uint32_t *weight,
1304 int *is_blank_or_comment)
1305{
1306 char *token_array[GROUP_MEMBER_INFO_TOKENS_MAX], **tokens;
1307 char *s0 = NULL, *s;
1308 uint32_t n_tokens = 0, group_id_val = 0, member_id_val = 0, weight_val = 0;
1309 int blank_or_comment = 0;
1310
1311 /* Check input arguments. */
1312 if (!string || !string[0])
1313 goto error;
1314
1315 /* Memory allocation. */
1316 s0 = strdup(string);
1317 if (!s0)
1318 goto error;
1319
1320 /* Parse the string into tokens. */
1321 for (s = s0; ; ) {
1322 char *token;
1323
1324 token = strtok_r(s, " \f\n\r\t\v", &s);
1325 if (!token || token_is_comment(token))
1326 break;
1327
1328 if (n_tokens >= GROUP_MEMBER_INFO_TOKENS_MAX)
1329 goto error;
1330
1331 token_array[n_tokens] = token;
1332 n_tokens++;
1333 }
1334
1335 if (!n_tokens) {
1336 blank_or_comment = 1;
1337 goto error;
1338 }
1339
1340 tokens = token_array;
1341
1342 if (n_tokens < 4 ||
1343 strcmp(tokens[0], "group") ||
1344 strcmp(tokens[2], "member"))
1345 goto error;
1346
1347 /*
1348 * Group ID.
1349 */
1350 if (parser_read_uint32(&group_id_val, tokens[1]) != 0)
1351 goto error;
1352 *group_id = group_id_val;
1353
1354 /*
1355 * Member ID.
1356 */

Calls 5

strdupFunction · 0.85
strcmpFunction · 0.85
token_is_commentFunction · 0.70
parser_read_uint32Function · 0.70
freeFunction · 0.50

Tested by

no test coverage detected