Message ID | 823c1802-9a61-4059-c6a8-61f5c2fad12c@suse.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xen: beginnings of moving library-like code into an archive | expand |
On 14/09/2020 11:17, Jan Beulich wrote:
> ... into its own CU, to build it into an archive.
CU?
Irrespective, it seems very weird to carve this out, seeing as it is
called from a number of core locations, and depends on other core
functions which aren't split out.
~Andrew
On 22.09.2020 21:41, Andrew Cooper wrote: > On 14/09/2020 11:17, Jan Beulich wrote: >> ... into its own CU, to build it into an archive. > > CU? Compilation Unit - we've been using this acronym in a number of cases, I think. > Irrespective, it seems very weird to carve this out, seeing as it is > called from a number of core locations, and depends on other core > functions which aren't split out. As said in the cover letter, the goal is to get rid of common/lib.c as a whole. It's a bad file name for _anything_ to live in, as from its name you can't really derive what may or may not be (or belong) in there. Depending on other core functions isn't a problem at all for stuff living in archives. It being called "from a number of core locations" isn't a convincing argument either, as all of those could potentially be inside some #ifdef CONFIG_*. However, if it is believed that this would better live in an object file than in an archive, I can easily move it from lib-y to obj-y. Jan
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: + */
... into its own CU, to build it into an archive. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- 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