aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/console/vtxprintf.h12
-rw-r--r--src/include/stdarg.h20
-rw-r--r--src/include/stdio.h15
-rw-r--r--src/include/string.h8
4 files changed, 39 insertions, 16 deletions
diff --git a/src/include/console/vtxprintf.h b/src/include/console/vtxprintf.h
index f6e985c09d..9babd89322 100644
--- a/src/include/console/vtxprintf.h
+++ b/src/include/console/vtxprintf.h
@@ -15,19 +15,7 @@
#ifndef __CONSOLE_VTXPRINTF_H
#define __CONSOLE_VTXPRINTF_H
-/* With GCC we use -nostdinc -ffreestanding to keep out system includes.
- * Unfortunately this also gets us rid of the _compiler_ includes, like
- * stdarg.h. To work around the issue, we define varargs directly here.
- * On LLVM we can still just include stdarg.h.
- */
-#ifdef __GNUC__
-#define va_start(v, l) __builtin_va_start(v, l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v, l) __builtin_va_arg(v, l)
-typedef __builtin_va_list va_list;
-#else
#include <stdarg.h>
-#endif
int vtxprintf(void (*tx_byte)(unsigned char byte, void *data),
const char *fmt, va_list args, void *data);
diff --git a/src/include/stdarg.h b/src/include/stdarg.h
new file mode 100644
index 0000000000..c5a8cd8dbe
--- /dev/null
+++ b/src/include/stdarg.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/**
+ * Note: This file is only for POSIX compatibility, and is meant to be
+ * chain-included via string.h.
+ */
+
+#ifndef STDARG_H
+#define STDARG_H
+
+#include <stddef.h>
+
+#define va_start(v, l) __builtin_va_start(v, l)
+#define va_end(v) __builtin_va_end(v)
+#define va_arg(v, l) __builtin_va_arg(v, l)
+typedef __builtin_va_list va_list;
+
+int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
+
+#endif /* STDARG_H */
diff --git a/src/include/stdio.h b/src/include/stdio.h
new file mode 100644
index 0000000000..d59b9411ee
--- /dev/null
+++ b/src/include/stdio.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/**
+ * Note: This file is only for POSIX compatibility, and is meant to be
+ * chain-included via string.h.
+ */
+
+#ifndef STDIO_H
+#define STDIO_H
+
+#include <stddef.h>
+
+int snprintf(char *buf, size_t size, const char *fmt, ...);
+
+#endif /* STDIO_H */
diff --git a/src/include/string.h b/src/include/string.h
index b55ca5fba6..f923ca5c02 100644
--- a/src/include/string.h
+++ b/src/include/string.h
@@ -1,9 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
#ifndef STRING_H
#define STRING_H
+#include <stdarg.h>
#include <stddef.h>
-
-#include <console/vtxprintf.h>
+#include <stdio.h>
/* Stringify a token */
#ifndef STRINGIFY
@@ -16,8 +18,6 @@ void *memmove(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
void *memchr(const void *s, int c, size_t n);
-int snprintf(char *buf, size_t size, const char *fmt, ...);
-int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
char *strdup(const char *s);
char *strconcat(const char *s1, const char *s2);
size_t strnlen(const char *src, size_t max);