summaryrefslogtreecommitdiff
path: root/tools/include/nolibc/nolibc.h
diff options
context:
space:
mode:
authorWilly Tarreau <w@1wt.eu>2022-02-07 19:23:19 +0300
committerPaul E. McKenney <paulmck@kernel.org>2022-04-21 03:05:43 +0300
commit06fdba53e0a9a897ba00c3602f14b3498b321655 (patch)
tree95ea88eaff37923c6b23617cd127cbc59888e804 /tools/include/nolibc/nolibc.h
parentbd8c8fbb866fe524b769a853f2b3525c227165fa (diff)
downloadlinux-06fdba53e0a9a897ba00c3602f14b3498b321655.tar.xz
tools/nolibc/stdlib: extract the stdlib-specific functions to their own file
The new file stdlib.h contains the definitions of functions that are usually found in stdlib.h. Many more could certainly be added. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'tools/include/nolibc/nolibc.h')
-rw-r--r--tools/include/nolibc/nolibc.h67
1 files changed, 1 insertions, 66 deletions
diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h
index 2af56ec760e2..ed909a8daa1a 100644
--- a/tools/include/nolibc/nolibc.h
+++ b/tools/include/nolibc/nolibc.h
@@ -87,40 +87,11 @@
#include "arch.h"
#include "types.h"
#include "sys.h"
+#include "stdlib.h"
/* Used by programs to avoid std includes */
#define NOLIBC
-static __attribute__((unused))
-int tcsetpgrp(int fd, pid_t pid)
-{
- return ioctl(fd, TIOCSPGRP, &pid);
-}
-
-static __attribute__((unused))
-unsigned int sleep(unsigned int seconds)
-{
- struct timeval my_timeval = { seconds, 0 };
-
- if (sys_select(0, 0, 0, 0, &my_timeval) < 0)
- return my_timeval.tv_sec + !!my_timeval.tv_usec;
- else
- return 0;
-}
-
-static __attribute__((unused))
-int msleep(unsigned int msecs)
-{
- struct timeval my_timeval = { msecs / 1000, (msecs % 1000) * 1000 };
-
- if (sys_select(0, 0, 0, 0, &my_timeval) < 0)
- return (my_timeval.tv_sec * 1000) +
- (my_timeval.tv_usec / 1000) +
- !!(my_timeval.tv_usec % 1000);
- else
- return 0;
-}
-
/* some size-optimized reimplementations of a few common str* and mem*
* functions. They're marked static, except memcpy() and raise() which are used
* by libgcc on ARM, so they are marked weak instead in order not to cause an
@@ -217,35 +188,6 @@ int isdigit(int c)
}
static __attribute__((unused))
-long atol(const char *s)
-{
- unsigned long ret = 0;
- unsigned long d;
- int neg = 0;
-
- if (*s == '-') {
- neg = 1;
- s++;
- }
-
- while (1) {
- d = (*s++) - '0';
- if (d > 9)
- break;
- ret *= 10;
- ret += d;
- }
-
- return neg ? -ret : ret;
-}
-
-static __attribute__((unused))
-int atoi(const char *s)
-{
- return atol(s);
-}
-
-static __attribute__((unused))
const char *ltoa(long in)
{
/* large enough for -9223372036854775808 */
@@ -273,13 +215,6 @@ void *memcpy(void *dst, const void *src, size_t len)
return memmove(dst, src, len);
}
-/* needed by libgcc for divide by zero */
-__attribute__((weak,unused))
-int raise(int signal)
-{
- return kill(getpid(), signal);
-}
-
/* Here come a few helper functions */
static __attribute__((unused))