mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-18 19:05:39 +00:00
tools/nolibc/stdlib: move ltoa() to stdlib.h
This function is not standard and performs the opposite of atol(). Let's move it with atol(). It's been split between a reentrant function and one using a static buffer. There's no more definition in nolibc.h anymore now. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
eba6d00d38
commit
56d68a3c1f
@ -94,26 +94,4 @@
|
||||
/* Used by programs to avoid std includes */
|
||||
#define NOLIBC
|
||||
|
||||
static __attribute__((unused))
|
||||
const char *ltoa(long in)
|
||||
{
|
||||
/* large enough for -9223372036854775808 */
|
||||
static char buffer[21];
|
||||
char *pos = buffer + sizeof(buffer) - 1;
|
||||
int neg = in < 0;
|
||||
unsigned long n = neg ? -in : in;
|
||||
|
||||
*pos-- = '\0';
|
||||
do {
|
||||
*pos-- = '0' + n % 10;
|
||||
n /= 10;
|
||||
if (pos < buffer)
|
||||
return pos + 1;
|
||||
} while (n);
|
||||
|
||||
if (neg)
|
||||
*pos-- = '-';
|
||||
return pos + 1;
|
||||
}
|
||||
|
||||
#endif /* _NOLIBC_H */
|
||||
|
@ -45,6 +45,38 @@ int atoi(const char *s)
|
||||
return atol(s);
|
||||
}
|
||||
|
||||
/* performs the opposite of atol() using a user-fed buffer. The buffer must be
|
||||
* at least 21 bytes long (large enough for "-9223372036854775808").
|
||||
*/
|
||||
static __attribute__((unused))
|
||||
const char *ltoa_r(long in, char *buffer)
|
||||
{
|
||||
char *pos = buffer + 21 - 1;
|
||||
int neg = in < 0;
|
||||
unsigned long n = neg ? -in : in;
|
||||
|
||||
*pos-- = '\0';
|
||||
do {
|
||||
*pos-- = '0' + n % 10;
|
||||
n /= 10;
|
||||
if (pos < buffer)
|
||||
return pos + 1;
|
||||
} while (n);
|
||||
|
||||
if (neg)
|
||||
*pos-- = '-';
|
||||
return pos + 1;
|
||||
}
|
||||
|
||||
/* performs the opposite of atol() using a statically allocated buffer */
|
||||
static __attribute__((unused))
|
||||
const char *ltoa(long in)
|
||||
{
|
||||
/* large enough for -9223372036854775808 */
|
||||
static char buffer[21];
|
||||
return ltoa_r(in, buffer);
|
||||
}
|
||||
|
||||
static __attribute__((unused))
|
||||
int msleep(unsigned int msecs)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user