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

Function rte_mempool_event_callback_register

dpdk/lib/mempool/rte_mempool.c:1410–1446  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1408}
1409
1410int
1411rte_mempool_event_callback_register(rte_mempool_event_callback *func,
1412 void *user_data)
1413{
1414 struct mempool_callback_data *cb;
1415 int ret;
1416
1417 if (func == NULL) {
1418 rte_errno = EINVAL;
1419 return -rte_errno;
1420 }
1421
1422 rte_mcfg_tailq_write_lock();
1423 TAILQ_FOREACH(cb, &callback_tailq, callbacks) {
1424 if (cb->func == func && cb->user_data == user_data) {
1425 ret = -EEXIST;
1426 goto exit;
1427 }
1428 }
1429
1430 cb = calloc(1, sizeof(*cb));
1431 if (cb == NULL) {
1432 RTE_LOG(ERR, MEMPOOL, "Cannot allocate event callback!\n");
1433 ret = -ENOMEM;
1434 goto exit;
1435 }
1436
1437 cb->func = func;
1438 cb->user_data = user_data;
1439 TAILQ_INSERT_TAIL(&callback_tailq, cb, callbacks);
1440 ret = 0;
1441
1442exit:
1443 rte_mcfg_tailq_write_unlock();
1444 rte_errno = -ret;
1445 return ret;
1446}
1447
1448int
1449rte_mempool_event_callback_unregister(rte_mempool_event_callback *func,

Calls 3

callocFunction · 0.85

Tested by 2

test_mempool_eventsFunction · 0.68