| #ifndef __STDIO_H | |
| #define __STDIO_H | |
| #include <stdarg.h> | |
| #include <linux/compiler.h> | |
| /* stdin */ | |
| int getchar(void); | |
| int tstc(void); | |
| /* stdout */ | |
| #if !defined(CONFIG_XPL_BUILD) || CONFIG_IS_ENABLED(SERIAL) | |
| void putc(const char c); | |
| void puts(const char *s); | |
| #ifdef CONFIG_CONSOLE_FLUSH_SUPPORT | |
| void flush(void); | |
| #else | |
| static inline void flush(void) {} | |
| #endif | |
| int __printf(1, 2) printf(const char *fmt, ...); | |
| int vprintf(const char *fmt, va_list args); | |
| #else | |
| static inline void putc(const char c) | |
| { | |
| } | |
| static inline void puts(const char *s) | |
| { | |
| } | |
| static inline void flush(void) | |
| { | |
| } | |
| static inline int __printf(1, 2) printf(const char *fmt, ...) | |
| { | |
| return 0; | |
| } | |
| static inline int vprintf(const char *fmt, va_list args) | |
| { | |
| return 0; | |
| } | |
| #endif | |
| /** | |
| * Format a string and place it in a buffer | |
| * | |
| * @buf: The buffer to place the result into | |
| * @size: The size of the buffer, including the trailing null space | |
| * @fmt: The format string to use | |
| * @...: Arguments for the format string | |
| * Return: the number of characters which would be | |
| * generated for the given input, excluding the trailing null, | |
| * as per ISO C99. If the return is greater than or equal to | |
| * @size, the resulting string is truncated. | |
| * | |
| * See the vsprintf() documentation for format string extensions over C99. | |
| */ | |
| int snprintf(char *buf, size_t size, const char *fmt, ...) | |
| __attribute__ ((format (__printf__, 3, 4))); | |
| /* | |
| * FILE based functions (can only be used AFTER relocation!) | |
| */ | |
| #define stdin 0 | |
| #define stdout 1 | |
| #define stderr 2 | |
| #define MAX_FILES 3 | |
| /* stderr */ | |
| #define eputc(c) fputc(stderr, c) | |
| #define eputs(s) fputs(stderr, s) | |
| #define eflush() fflush(stderr) | |
| #define eprintf(fmt, args...) fprintf(stderr, fmt, ##args) | |
| int __printf(2, 3) fprintf(int file, const char *fmt, ...); | |
| void fputs(int file, const char *s); | |
| void fputc(int file, const char c); | |
| #ifdef CONFIG_CONSOLE_FLUSH_SUPPORT | |
| void fflush(int file); | |
| #else | |
| static inline void fflush(int file) {} | |
| #endif | |
| int ftstc(int file); | |
| int fgetc(int file); | |
| #endif /* __STDIO_H */ |