[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH v3 1/3] lib/nolibc: Introduce atoi() function



From: Sharan Santhanam <sharan.santhanam@xxxxxxxxx>

Adds atoi() conversion function to stdlib. It is based on strtoll().

Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
Signed-off-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx>
---
 lib/nolibc/include/stdlib.h |  6 ++++++
 lib/nolibc/stdlib.c         | 11 +++++++++++
 2 files changed, 17 insertions(+)

diff --git a/lib/nolibc/include/stdlib.h b/lib/nolibc/include/stdlib.h
index dd6f9f7..f2a0ccf 100644
--- a/lib/nolibc/include/stdlib.h
+++ b/lib/nolibc/include/stdlib.h
@@ -48,6 +48,12 @@ unsigned long strtoul(const char *nptr, char **endptr, int 
base);
 long long strtoll(const char *nptr, char **endptr, int base);
 unsigned long long strtoull(const char *nptr, char **endptr, int base);
 
+/**
+ * Convert a string to an integer
+ * @s: The start of the string
+ */
+int atoi(const char *s);
+
 #if CONFIG_LIBUKALLOC
 /* Allocate size bytes of memory. Returns pointer to start of allocated memory,
  * or NULL on failure.
diff --git a/lib/nolibc/stdlib.c b/lib/nolibc/stdlib.c
index d48083a..22afa77 100644
--- a/lib/nolibc/stdlib.c
+++ b/lib/nolibc/stdlib.c
@@ -276,3 +276,14 @@ unsigned long long strtoull(const char *nptr, char 
**endptr, int base)
                *endptr = __DECONST(char *, any ? s - 1 : nptr);
        return acc;
 }
+
+int atoi(const char *s)
+{
+       long long atoll;
+
+       atoll = strtoll(s, NULL, 10);
+       atoll = (atoll > __I_MAX) ? __I_MAX : atoll;
+       atoll = (atoll < __I_MIN) ? __I_MIN : atoll;
+
+       return (int) atoll;
+}
-- 
2.7.4


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.