Commit 4e383a66 authored by Willy Tarreau's avatar Willy Tarreau Committed by Paul E. McKenney

tools/nolibc/stdio: add a minimal set of stdio functions

This only provides getchar(), putchar(), and puts().
Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 5f493178
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
#include "types.h" #include "types.h"
#include "sys.h" #include "sys.h"
#include "ctype.h" #include "ctype.h"
#include "stdio.h"
#include "stdlib.h" #include "stdlib.h"
#include "string.h" #include "string.h"
......
/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
/*
* minimal stdio function definitions for NOLIBC
* Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu>
*/
#ifndef _NOLIBC_STDIO_H
#define _NOLIBC_STDIO_H
#include "std.h"
#include "arch.h"
#include "types.h"
#include "sys.h"
#include "stdlib.h"
#include "string.h"
#ifndef EOF
#define EOF (-1)
#endif
static __attribute__((unused))
int getchar(void)
{
unsigned char ch;
if (read(0, &ch, 1) <= 0)
return EOF;
return ch;
}
static __attribute__((unused))
int putchar(int c)
{
unsigned char ch = c;
if (write(1, &ch, 1) <= 0)
return EOF;
return ch;
}
static __attribute__((unused))
int puts(const char *s)
{
size_t len = strlen(s);
ssize_t ret;
while (len > 0) {
ret = write(1, s, len);
if (ret <= 0)
return EOF;
s += ret;
len -= ret;
}
return putchar('\n');
}
#endif /* _NOLIBC_STDIO_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment