static odp_pktio_t alloc_lock_pktio_entry(odp_pktio_params_t *params) { odp_pktio_t id; pktio_entry_t *entry; int i; for (i = 0; i < ODP_CONFIG_PKTIO_ENTRIES; ++i) { entry = &pktio_tbl->entries[i]; if (is_free(entry)) { lock_entry(entry); if (is_free(entry)) { init_pktio_entry(entry, params); id = i + 1; return id; /* return with entry locked! */ } unlock_entry(entry); } } return ODP_PKTIO_INVALID; }
static odp_pktio_t alloc_lock_pktio_entry(void) { odp_pktio_t id; pktio_entry_t *entry; int i; for (i = 0; i < ODP_CONFIG_PKTIO_ENTRIES; ++i) { entry = &pktio_tbl->entries[i]; if (is_free(entry)) { lock_entry_classifier(entry); if (is_free(entry)) { init_pktio_entry(entry); id = _odp_cast_scalar(odp_pktio_t, i + 1); return id; /* return with entry locked! */ } unlock_entry_classifier(entry); } } return ODP_PKTIO_INVALID; }