> On 23 Nov 2020, at 15:22, Jan Beulich <jbeul...@suse.com> wrote:
>
> ... into its own CU, to build it into an archive.
>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
> Acked-by: Julien Grall <jgr...@amazon.com>
Reviewed-by: Bertrand Marquis <bertrand.marq...@arm.com>
Cheers
Bertrand
> ---
> xen/common/lib.c | 39 ----------------------------------
> xen/lib/Makefile | 1 +
> xen/lib/parse-size.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 51 insertions(+), 39 deletions(-)
> create mode 100644 xen/lib/parse-size.c
>
> diff --git a/xen/common/lib.c b/xen/common/lib.c
> index a224efa8f6e8..6cfa332142a5 100644
> --- a/xen/common/lib.c
> +++ b/xen/common/lib.c
> @@ -423,45 +423,6 @@ uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
> #endif
> }
>
> -unsigned long long parse_size_and_unit(const char *s, const char **ps)
> -{
> - unsigned long long ret;
> - const char *s1;
> -
> - ret = simple_strtoull(s, &s1, 0);
> -
> - switch ( *s1 )
> - {
> - case 'T': case 't':
> - ret <<= 10;
> - /* fallthrough */
> - case 'G': case 'g':
> - ret <<= 10;
> - /* fallthrough */
> - case 'M': case 'm':
> - ret <<= 10;
> - /* fallthrough */
> - case 'K': case 'k':
> - ret <<= 10;
> - /* fallthrough */
> - case 'B': case 'b':
> - s1++;
> - break;
> - case '%':
> - if ( ps )
> - break;
> - /* fallthrough */
> - default:
> - ret <<= 10; /* default to kB */
> - break;
> - }
> -
> - if ( ps != NULL )
> - *ps = s1;
> -
> - return ret;
> -}
> -
> typedef void (*ctor_func_t)(void);
> extern const ctor_func_t __ctors_start[], __ctors_end[];
>
> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
> index 764f3624b5f9..99f857540c99 100644
> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -2,3 +2,4 @@ obj-$(CONFIG_X86) += x86/
>
> lib-y += ctype.o
> lib-y += list-sort.o
> +lib-y += parse-size.o
> diff --git a/xen/lib/parse-size.c b/xen/lib/parse-size.c
> new file mode 100644
> index 000000000000..ec980cadfff3
> --- /dev/null
> +++ b/xen/lib/parse-size.c
> @@ -0,0 +1,50 @@
> +#include <xen/lib.h>
> +
> +unsigned long long parse_size_and_unit(const char *s, const char **ps)
> +{
> + unsigned long long ret;
> + const char *s1;
> +
> + ret = simple_strtoull(s, &s1, 0);
> +
> + switch ( *s1 )
> + {
> + case 'T': case 't':
> + ret <<= 10;
> + /* fallthrough */
> + case 'G': case 'g':
> + ret <<= 10;
> + /* fallthrough */
> + case 'M': case 'm':
> + ret <<= 10;
> + /* fallthrough */
> + case 'K': case 'k':
> + ret <<= 10;
> + /* fallthrough */
> + case 'B': case 'b':
> + s1++;
> + break;
> + case '%':
> + if ( ps )
> + break;
> + /* fallthrough */
> + default:
> + ret <<= 10; /* default to kB */
> + break;
> + }
> +
> + if ( ps != NULL )
> + *ps = s1;
> +
> + return ret;
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
>
>