X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Fbuffer.c;h=71f84d377affcb4eeb7a8f0fb8f690c19efc171f;hb=aed42948510a94922566fa1a4bfb6eec281e5dee;hp=ae88b4e4d44ab0a427a7c2edd715c0822fe2229b;hpb=fd8deb48c7ad63b47c5d7465ceefcadef0316f93;p=vpp.git diff --git a/src/vlib/buffer.c b/src/vlib/buffer.c index ae88b4e4d44..71f84d377af 100644 --- a/src/vlib/buffer.c +++ b/src/vlib/buffer.c @@ -509,7 +509,7 @@ vlib_buffer_pool_create (vlib_main_t * vm, char *name, u32 data_size, if (vec_len (bm->buffer_pools) >= 255) return ~0; - vec_add2_aligned (bm->buffer_pools, bp, 1, CLIB_LOG2_CACHE_LINE_BYTES); + vec_add2_aligned (bm->buffer_pools, bp, 1, CLIB_CACHE_LINE_BYTES); if (bm->buffer_mem_size == 0) { @@ -615,20 +615,26 @@ format_vlib_buffer_pool (u8 * s, va_list * va) return s; } -static clib_error_t * -show_buffers (vlib_main_t * vm, - unformat_input_t * input, vlib_cli_command_t * cmd) +u8 * +format_vlib_buffer_pool_all (u8 *s, va_list *va) { + vlib_main_t *vm = va_arg (*va, vlib_main_t *); vlib_buffer_main_t *bm = vm->buffer_main; vlib_buffer_pool_t *bp; - vlib_cli_output (vm, "%U", format_vlib_buffer_pool, vm, 0); + s = format (s, "%U", format_vlib_buffer_pool, vm, 0); - /* *INDENT-OFF* */ vec_foreach (bp, bm->buffer_pools) - vlib_cli_output (vm, "%U", format_vlib_buffer_pool, vm, bp); - /* *INDENT-ON* */ + s = format (s, "\n%U", format_vlib_buffer_pool, vm, bp); + + return s; +} +static clib_error_t * +show_buffers (vlib_main_t *vm, unformat_input_t *input, + vlib_cli_command_t *cmd) +{ + vlib_cli_output (vm, "%U", format_vlib_buffer_pool_all, vm); return 0; } @@ -971,6 +977,20 @@ vlib_buffer_alloc_may_fail (vlib_main_t * vm, u32 n_buffers) } #endif +__clib_export int +vlib_buffer_set_alloc_free_callback ( + vlib_main_t *vm, vlib_buffer_alloc_free_callback_t *alloc_callback_fn, + vlib_buffer_alloc_free_callback_t *free_callback_fn) +{ + vlib_buffer_main_t *bm = vm->buffer_main; + if ((alloc_callback_fn && bm->alloc_callback_fn) || + (free_callback_fn && bm->free_callback_fn)) + return 1; + bm->alloc_callback_fn = alloc_callback_fn; + bm->free_callback_fn = free_callback_fn; + return 0; +} + /** @endcond */ /* * fd.io coding-style-patch-verification: ON