xref: /rk3399_rockchip-uboot/include/stdio.h (revision 50f8c1b1d6befc71c1530e0967d9cd1e9a268552)
1*50f8c1b1SMasahiro Yamada #ifndef __STDIO_H
2*50f8c1b1SMasahiro Yamada #define __STDIO_H
3*50f8c1b1SMasahiro Yamada 
4*50f8c1b1SMasahiro Yamada #include <stdarg.h>
5*50f8c1b1SMasahiro Yamada #include <linux/compiler.h>
6*50f8c1b1SMasahiro Yamada 
7*50f8c1b1SMasahiro Yamada /* stdin */
8*50f8c1b1SMasahiro Yamada int getc(void);
9*50f8c1b1SMasahiro Yamada int tstc(void);
10*50f8c1b1SMasahiro Yamada 
11*50f8c1b1SMasahiro Yamada /* stdout */
12*50f8c1b1SMasahiro Yamada #if !defined(CONFIG_SPL_BUILD) || \
13*50f8c1b1SMasahiro Yamada 	(defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_SERIAL_SUPPORT)) || \
14*50f8c1b1SMasahiro Yamada 	(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) && \
15*50f8c1b1SMasahiro Yamada 		defined(CONFIG_SPL_SERIAL_SUPPORT))
16*50f8c1b1SMasahiro Yamada void putc(const char c);
17*50f8c1b1SMasahiro Yamada void puts(const char *s);
18*50f8c1b1SMasahiro Yamada int __printf(1, 2) printf(const char *fmt, ...);
19*50f8c1b1SMasahiro Yamada int vprintf(const char *fmt, va_list args);
20*50f8c1b1SMasahiro Yamada #else
21*50f8c1b1SMasahiro Yamada static inline void putc(const char c)
22*50f8c1b1SMasahiro Yamada {
23*50f8c1b1SMasahiro Yamada }
24*50f8c1b1SMasahiro Yamada 
25*50f8c1b1SMasahiro Yamada static inline void puts(const char *s)
26*50f8c1b1SMasahiro Yamada {
27*50f8c1b1SMasahiro Yamada }
28*50f8c1b1SMasahiro Yamada 
29*50f8c1b1SMasahiro Yamada static inline int __printf(1, 2) printf(const char *fmt, ...)
30*50f8c1b1SMasahiro Yamada {
31*50f8c1b1SMasahiro Yamada 	return 0;
32*50f8c1b1SMasahiro Yamada }
33*50f8c1b1SMasahiro Yamada 
34*50f8c1b1SMasahiro Yamada static inline int vprintf(const char *fmt, va_list args)
35*50f8c1b1SMasahiro Yamada {
36*50f8c1b1SMasahiro Yamada 	return 0;
37*50f8c1b1SMasahiro Yamada }
38*50f8c1b1SMasahiro Yamada #endif
39*50f8c1b1SMasahiro Yamada 
40*50f8c1b1SMasahiro Yamada /*
41*50f8c1b1SMasahiro Yamada  * FILE based functions (can only be used AFTER relocation!)
42*50f8c1b1SMasahiro Yamada  */
43*50f8c1b1SMasahiro Yamada #define stdin		0
44*50f8c1b1SMasahiro Yamada #define stdout		1
45*50f8c1b1SMasahiro Yamada #define stderr		2
46*50f8c1b1SMasahiro Yamada #define MAX_FILES	3
47*50f8c1b1SMasahiro Yamada 
48*50f8c1b1SMasahiro Yamada /* stderr */
49*50f8c1b1SMasahiro Yamada #define eputc(c)		fputc(stderr, c)
50*50f8c1b1SMasahiro Yamada #define eputs(s)		fputs(stderr, s)
51*50f8c1b1SMasahiro Yamada #define eprintf(fmt, args...)	fprintf(stderr, fmt, ##args)
52*50f8c1b1SMasahiro Yamada 
53*50f8c1b1SMasahiro Yamada int __printf(2, 3) fprintf(int file, const char *fmt, ...);
54*50f8c1b1SMasahiro Yamada void fputs(int file, const char *s);
55*50f8c1b1SMasahiro Yamada void fputc(int file, const char c);
56*50f8c1b1SMasahiro Yamada int ftstc(int file);
57*50f8c1b1SMasahiro Yamada int fgetc(int file);
58*50f8c1b1SMasahiro Yamada 
59*50f8c1b1SMasahiro Yamada #endif /* __STDIO_H */
60