-vcl_cut_through_registration_t *
-vcl_ct_registration_lock_and_alloc (vcl_worker_t * wrk)
-{
- vcl_cut_through_registration_t *cr;
- clib_spinlock_lock (&wrk->ct_registration_lock);
- pool_get (wrk->cut_through_registrations, cr);
- memset (cr, 0, sizeof (*cr));
- cr->epoll_evt_conn_index = -1;
- return cr;
-}
-
-u32
-vcl_ct_registration_index (vcl_worker_t * wrk,
- vcl_cut_through_registration_t * ctr)
-{
- return (ctr - wrk->cut_through_registrations);
-}
-
-void
-vcl_ct_registration_lock (vcl_worker_t * wrk)
-{
- clib_spinlock_lock (&wrk->ct_registration_lock);
-}
-
-void
-vcl_ct_registration_unlock (vcl_worker_t * wrk)
-{
- clib_spinlock_unlock (&wrk->ct_registration_lock);
-}
-
-vcl_cut_through_registration_t *
-vcl_ct_registration_get (vcl_worker_t * wrk, u32 ctr_index)
-{
- if (pool_is_free_index (wrk->cut_through_registrations, ctr_index))
- return 0;
- return pool_elt_at_index (wrk->cut_through_registrations, ctr_index);
-}
-
-vcl_cut_through_registration_t *
-vcl_ct_registration_lock_and_lookup (vcl_worker_t * wrk, uword mq_addr)
-{
- uword *p;
- clib_spinlock_lock (&wrk->ct_registration_lock);
- p = hash_get (wrk->ct_registration_by_mq, mq_addr);
- if (!p)
- return 0;
- return vcl_ct_registration_get (wrk, p[0]);
-}
-
-void
-vcl_ct_registration_lookup_add (vcl_worker_t * wrk, uword mq_addr,
- u32 ctr_index)
-{
- hash_set (wrk->ct_registration_by_mq, mq_addr, ctr_index);
-}
-
-void
-vcl_ct_registration_lookup_del (vcl_worker_t * wrk, uword mq_addr)
-{
- hash_unset (wrk->ct_registration_by_mq, mq_addr);
-}
-
-void
-vcl_ct_registration_del (vcl_worker_t * wrk,
- vcl_cut_through_registration_t * ctr)
-{
- pool_put (wrk->cut_through_registrations, ctr);
-}
-