diff options
author | Neale Ranns <nranns@cisco.com> | 2018-06-04 18:41:24 -0700 |
---|---|---|
committer | John Lo <loj@cisco.com> | 2018-06-08 23:11:02 +0000 |
commit | f12dad658d03030d1a61ba970e27c8f01763f2e0 (patch) | |
tree | f1abcab45724641e78b7d1733905626989a59b52 /src/vlibapi/api_helper_macros.h | |
parent | 81119e86bdf47f41f06218f91e52024bc4d00e7c (diff) |
Add reaper functions to want events APIs (VPP-1304)
Change-Id: Iaeb52d94cb6da63ee93af7c1cf2dade6046cba1d
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vlibapi/api_helper_macros.h')
-rw-r--r-- | src/vlibapi/api_helper_macros.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/vlibapi/api_helper_macros.h b/src/vlibapi/api_helper_macros.h index ce80f0e0e20..fe9cde03d4d 100644 --- a/src/vlibapi/api_helper_macros.h +++ b/src/vlibapi/api_helper_macros.h @@ -207,7 +207,25 @@ static void vl_api_want_##lca##_t_handler ( \ \ reply: \ REPLY_MACRO (VL_API_WANT_##UCA##_REPLY); \ -} +} \ + \ +static clib_error_t * vl_api_want_##lca##_t_reaper (u32 client_index) \ +{ \ + vpe_api_main_t *vam = &vpe_api_main; \ + vpe_client_registration_t *rp; \ + uword *p; \ + \ + p = hash_get (vam->lca##_registrations, client_index); \ + if (p) \ + { \ + rp = pool_elt_at_index (vam->lca##_registrations, p[0]); \ + pool_put (vam->lca##_registrations, rp); \ + hash_unset (vam->lca##_registration_hash, client_index); \ + } \ + return (NULL); \ +} \ + \ +VL_MSG_API_REAPER_FUNCTION (vl_api_want_##lca##_t_reaper); \ #define foreach_registration_hash \ _(interface_events) \ |