|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] common: move simple_strto{,u}l{,l}() to lib/
commit e35944f37b4d98a81c832f0c4c3ed03b304af6d2
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Aug 2 10:51:39 2023 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Aug 2 10:51:39 2023 +0200
common: move simple_strto{,u}l{,l}() to lib/
Convert style from a Xen/Linux mix to pure Xen while doing the move. No
other changes, despite having been heavily tempted to do some - at the
very least to make simple_strtoul() and simple_strtoull() the same in
how they deal with non-numeric digits.
Requested-by: Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>
---
xen/common/vsprintf.c | 102 --------------------------------------------------
xen/lib/Makefile | 4 ++
xen/lib/strtol.c | 28 ++++++++++++++
xen/lib/strtoll.c | 28 ++++++++++++++
xen/lib/strtoul.c | 61 ++++++++++++++++++++++++++++++
xen/lib/strtoull.c | 62 ++++++++++++++++++++++++++++++
6 files changed, 183 insertions(+), 102 deletions(-)
diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c
index b278961cc3..94c1ba7257 100644
--- a/xen/common/vsprintf.c
+++ b/xen/common/vsprintf.c
@@ -24,108 +24,6 @@
#include <asm/div64.h>
#include <asm/page.h>
-/**
- * simple_strtoul - convert a string to an unsigned long
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-unsigned long simple_strtoul(
- const char *cp, const char **endp, unsigned int base)
-{
- unsigned long result = 0,value;
-
- if (!base) {
- base = 10;
- if (*cp == '0') {
- base = 8;
- cp++;
- if ((toupper(*cp) == 'X') && isxdigit(cp[1])) {
- cp++;
- base = 16;
- }
- }
- } else if (base == 16) {
- if (cp[0] == '0' && toupper(cp[1]) == 'X')
- cp += 2;
- }
- while (isxdigit(*cp) &&
- (value = isdigit(*cp) ? *cp-'0' : toupper(*cp)-'A'+10) < base) {
- result = result*base + value;
- cp++;
- }
- if (endp)
- *endp = cp;
- return result;
-}
-
-EXPORT_SYMBOL(simple_strtoul);
-
-/**
- * simple_strtol - convert a string to a signed long
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-long simple_strtol(const char *cp, const char **endp, unsigned int base)
-{
- if(*cp=='-')
- return -simple_strtoul(cp+1,endp,base);
- return simple_strtoul(cp,endp,base);
-}
-
-EXPORT_SYMBOL(simple_strtol);
-
-/**
- * simple_strtoull - convert a string to an unsigned long long
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-unsigned long long simple_strtoull(
- const char *cp, const char **endp, unsigned int base)
-{
- unsigned long long result = 0,value;
-
- if (!base) {
- base = 10;
- if (*cp == '0') {
- base = 8;
- cp++;
- if ((toupper(*cp) == 'X') && isxdigit(cp[1])) {
- cp++;
- base = 16;
- }
- }
- } else if (base == 16) {
- if (cp[0] == '0' && toupper(cp[1]) == 'X')
- cp += 2;
- }
- while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp)
- ? toupper(*cp)
: *cp)-'A'+10) < base) {
- result = result*base + value;
- cp++;
- }
- if (endp)
- *endp = cp;
- return result;
-}
-
-EXPORT_SYMBOL(simple_strtoull);
-
-/**
- * simple_strtoll - convert a string to a signed long long
- * @cp: The start of the string
- * @endp: A pointer to the end of the parsed string will be placed here
- * @base: The number base to use
- */
-long long simple_strtoll(const char *cp,const char **endp,unsigned int base)
-{
- if(*cp=='-')
- return -simple_strtoull(cp+1,endp,base);
- return simple_strtoull(cp,endp,base);
-}
-
static int skip_atoi(const char **s)
{
int i=0;
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index b311ea739c..2d9ebb945f 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -28,6 +28,10 @@ lib-y += strrchr.o
lib-y += strsep.o
lib-y += strspn.o
lib-y += strstr.o
+lib-y += strtol.o
+lib-y += strtoll.o
+lib-y += strtoul.o
+lib-y += strtoull.o
lib-$(CONFIG_X86) += xxhash32.o
lib-$(CONFIG_X86) += xxhash64.o
diff --git a/xen/lib/strtol.c b/xen/lib/strtol.c
new file mode 100644
index 0000000000..30dca779cf
--- /dev/null
+++ b/xen/lib/strtol.c
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+#include <xen/lib.h>
+
+/**
+ * simple_strtol - convert a string to a signed long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+long simple_strtol(const char *cp, const char **endp, unsigned int base)
+{
+ if ( *cp == '-' )
+ return -simple_strtoul(cp + 1, endp, base);
+ return simple_strtoul(cp, endp, base);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/strtoll.c b/xen/lib/strtoll.c
new file mode 100644
index 0000000000..5d23fd80e8
--- /dev/null
+++ b/xen/lib/strtoll.c
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+#include <xen/lib.h>
+
+/**
+ * simple_strtoll - convert a string to a signed long long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+long long simple_strtoll(const char *cp, const char **endp, unsigned int base)
+{
+ if ( *cp == '-' )
+ return -simple_strtoull(cp + 1, endp, base);
+ return simple_strtoull(cp, endp, base);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/strtoul.c b/xen/lib/strtoul.c
new file mode 100644
index 0000000000..a378fe735e
--- /dev/null
+++ b/xen/lib/strtoul.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+#include <xen/ctype.h>
+#include <xen/lib.h>
+
+/**
+ * simple_strtoul - convert a string to an unsigned long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+unsigned long simple_strtoul(
+ const char *cp, const char **endp, unsigned int base)
+{
+ unsigned long result = 0, value;
+
+ if ( !base )
+ {
+ base = 10;
+ if ( *cp == '0' )
+ {
+ base = 8;
+ cp++;
+ if ( (toupper(*cp) == 'X') && isxdigit(cp[1]) )
+ {
+ cp++;
+ base = 16;
+ }
+ }
+ }
+ else if ( base == 16 )
+ {
+ if ( cp[0] == '0' && toupper(cp[1]) == 'X' )
+ cp += 2;
+ }
+
+ while ( isxdigit(*cp) &&
+ (value = isdigit(*cp) ? *cp - '0'
+ : toupper(*cp) - 'A' + 10) < base )
+ {
+ result = result * base + value;
+ cp++;
+ }
+
+ if ( endp )
+ *endp = cp;
+
+ return result;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/strtoull.c b/xen/lib/strtoull.c
new file mode 100644
index 0000000000..ba6e0f53b3
--- /dev/null
+++ b/xen/lib/strtoull.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+#include <xen/ctype.h>
+#include <xen/lib.h>
+
+/**
+ * simple_strtoull - convert a string to an unsigned long long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+unsigned long long simple_strtoull(
+ const char *cp, const char **endp, unsigned int base)
+{
+ unsigned long long result = 0, value;
+
+ if ( !base )
+ {
+ base = 10;
+ if ( *cp == '0' )
+ {
+ base = 8;
+ cp++;
+ if ( (toupper(*cp) == 'X') && isxdigit(cp[1]) )
+ {
+ cp++;
+ base = 16;
+ }
+ }
+ }
+ else if ( base == 16 )
+ {
+ if ( cp[0] == '0' && toupper(cp[1]) == 'X' )
+ cp += 2;
+ }
+
+ while ( isxdigit(*cp) &&
+ (value = isdigit(*cp) ? *cp - '0'
+ : (islower(*cp) ? toupper(*cp)
+ : *cp) - 'A' + 10) < base )
+ {
+ result = result * base + value;
+ cp++;
+ }
+
+ if ( endp )
+ *endp = cp;
+
+ return result;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |