Adding a format function for bihash init routine to format the key, value, when verbose option is used
Change-Id: Ib63ead4525332f897b8a1d8a4cf5a0eb1da1e7f3 Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
3a905e69b8
commit
fb8e61cd93
@ -41,6 +41,14 @@ void BV (clib_bihash_init)
|
|||||||
BV (clib_bihash_reset_cache) (h->buckets + i);
|
BV (clib_bihash_reset_cache) (h->buckets + i);
|
||||||
|
|
||||||
clib_mem_set_heap (oldheap);
|
clib_mem_set_heap (oldheap);
|
||||||
|
|
||||||
|
h->fmt_fn = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BV (clib_bihash_set_kvp_format_fn) (BVT (clib_bihash) * h,
|
||||||
|
format_function_t * fmt_fn)
|
||||||
|
{
|
||||||
|
h->fmt_fn = fmt_fn;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BV (clib_bihash_free) (BVT (clib_bihash) * h)
|
void BV (clib_bihash_free) (BVT (clib_bihash) * h)
|
||||||
@ -566,9 +574,18 @@ u8 *BV (format_bihash) (u8 * s, va_list * args)
|
|||||||
}
|
}
|
||||||
if (verbose)
|
if (verbose)
|
||||||
{
|
{
|
||||||
s = format (s, " %d: %U\n",
|
if (h->fmt_fn)
|
||||||
j * BIHASH_KVP_PER_PAGE + k,
|
{
|
||||||
BV (format_bihash_kvp), &(v->kvp[k]));
|
s = format (s, " %d: %U\n",
|
||||||
|
j * BIHASH_KVP_PER_PAGE + k,
|
||||||
|
h->fmt_fn, &(v->kvp[k]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s = format (s, " %d: %U\n",
|
||||||
|
j * BIHASH_KVP_PER_PAGE + k,
|
||||||
|
BV (format_bihash_kvp), &(v->kvp[k]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
active_elements++;
|
active_elements++;
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,11 @@ typedef struct
|
|||||||
BVT (clib_bihash_value) ** freelists;
|
BVT (clib_bihash_value) ** freelists;
|
||||||
void *mheap;
|
void *mheap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A custom format function to print the Key and Value of bihash_key instead of default hexdump
|
||||||
|
*/
|
||||||
|
format_function_t *fmt_fn;
|
||||||
|
|
||||||
} BVT (clib_bihash);
|
} BVT (clib_bihash);
|
||||||
|
|
||||||
|
|
||||||
@ -240,6 +245,9 @@ static inline uword BV (clib_bihash_get_offset) (BVT (clib_bihash) * h,
|
|||||||
void BV (clib_bihash_init)
|
void BV (clib_bihash_init)
|
||||||
(BVT (clib_bihash) * h, char *name, u32 nbuckets, uword memory_size);
|
(BVT (clib_bihash) * h, char *name, u32 nbuckets, uword memory_size);
|
||||||
|
|
||||||
|
void BV (clib_bihash_set_kvp_format_fn) (BVT (clib_bihash) * h,
|
||||||
|
format_function_t * fmt_fn);
|
||||||
|
|
||||||
void BV (clib_bihash_free) (BVT (clib_bihash) * h);
|
void BV (clib_bihash_free) (BVT (clib_bihash) * h);
|
||||||
|
|
||||||
int BV (clib_bihash_add_del) (BVT (clib_bihash) * h,
|
int BV (clib_bihash_add_del) (BVT (clib_bihash) * h,
|
||||||
|
Reference in New Issue
Block a user