summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Tauner <stefan.tauner@gmx.at>2013-06-27 17:06:27 +0200
committerNico Huber <nico.huber@secunet.com>2013-06-28 10:39:57 +0200
commitc9246da4ddff9fef2bb26d05d87d1f616124b91e (patch)
tree305c9635113740451c08bc5572ce1bece8b027f2
parentc0b1a48cdaed0a9c955fd98563a1d5906a72b533 (diff)
downloadcoreboot-c9246da4ddff9fef2bb26d05d87d1f616124b91e.tar.xz
libpayload: Add strerror
Change-Id: I33d45ad7d09473b8c6f5b7ee5fbadc0d184f9dcd Signed-off-by: Stefan Tauner <stefan.tauner@gmx.at> Reviewed-on: http://review.coreboot.org/3537 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber <nico.huber@secunet.com>
-rw-r--r--payloads/libpayload/include/string.h5
-rw-r--r--payloads/libpayload/libc/string.c14
2 files changed, 17 insertions, 2 deletions
diff --git a/payloads/libpayload/include/string.h b/payloads/libpayload/include/string.h
index 9e4f791a7d..952261fa15 100644
--- a/payloads/libpayload/include/string.h
+++ b/payloads/libpayload/include/string.h
@@ -63,8 +63,9 @@ char *strstr(const char *h, const char *n);
char *strsep(char **stringp, const char *delim);
size_t strspn(const char *s, const char *a);
size_t strcspn(const char *s, const char *a);
-char* strtok(char *str, const char *delim);
-char* strtok_r(char *str, const char *delim, char **ptr);
+char *strtok(char *str, const char *delim);
+char *strtok_r(char *str, const char *delim, char **ptr);
+char *strerror(int errnum);
/** @} */
/**
diff --git a/payloads/libpayload/libc/string.c b/payloads/libpayload/libc/string.c
index 6151164d68..71dd1a6d1b 100644
--- a/payloads/libpayload/libc/string.c
+++ b/payloads/libpayload/libc/string.c
@@ -639,3 +639,17 @@ void perror(const char *s)
{
printf("%s: %d\n", s?s:"(none)", errno);
}
+
+/**
+ * Get a message string describing the given error number.
+ *
+ * @param errnum The error number to be interpreted
+ * @return A pointer to a string describing the given error number
+ */
+char *strerror(int errnum)
+{
+ /* Reserve enough space for the string below + INT64_MIN in decimal + \0 */
+ static char errstr[35];
+ snprintf(errstr, sizeof(errstr), "Unknown error %d", errnum);
+ return errstr;
+}