vppinfra: create unformat function for data size parsing
Type: feature
Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
Change-Id: I8d71078a9ed42326e19453ea10008c6bb6992c52
(cherry picked from commit 579b165069
)
This commit is contained in:

committed by
Andrew Yourtchenko

parent
fb76b4549f
commit
cb19100c18
@ -317,6 +317,8 @@ uword unformat_init_unix_env (unformat_input_t * input, char *var);
|
|||||||
unformat_function_t unformat_unix_gid;
|
unformat_function_t unformat_unix_gid;
|
||||||
#endif /* CLIB_UNIX */
|
#endif /* CLIB_UNIX */
|
||||||
|
|
||||||
|
uword unformat_data_size (unformat_input_t * input, va_list * args);
|
||||||
|
|
||||||
/* Test code. */
|
/* Test code. */
|
||||||
int test_format_main (unformat_input_t * input);
|
int test_format_main (unformat_input_t * input);
|
||||||
int test_unformat_main (unformat_input_t * input);
|
int test_unformat_main (unformat_input_t * input);
|
||||||
|
@ -1077,6 +1077,30 @@ unformat_init_unix_env (unformat_input_t * input, char *var)
|
|||||||
return val != 0;
|
return val != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uword
|
||||||
|
unformat_data_size (unformat_input_t * input, va_list * args)
|
||||||
|
{
|
||||||
|
u64 _a;
|
||||||
|
u64 *a = va_arg (*args, u64 *);
|
||||||
|
if (unformat (input, "%lluGb", &_a))
|
||||||
|
*a = _a << 30;
|
||||||
|
else if (unformat (input, "%lluG", &_a))
|
||||||
|
*a = _a << 30;
|
||||||
|
else if (unformat (input, "%lluMb", &_a))
|
||||||
|
*a = _a << 20;
|
||||||
|
else if (unformat (input, "%lluM", &_a))
|
||||||
|
*a = _a << 20;
|
||||||
|
else if (unformat (input, "%lluKb", &_a))
|
||||||
|
*a = _a << 10;
|
||||||
|
else if (unformat (input, "%lluK", &_a))
|
||||||
|
*a = _a << 10;
|
||||||
|
else if (unformat (input, "%llu", a))
|
||||||
|
;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* CLIB_UNIX */
|
#endif /* CLIB_UNIX */
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user