All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/8] stdio.h: move printf() stuff from <common.h> to <stdio.h>
Date: Sat, 16 Sep 2017 14:10:39 +0900	[thread overview]
Message-ID: <1505538646-19191-2-git-send-email-yamada.masahiro@socionext.com> (raw)
In-Reply-To: <1505538646-19191-1-git-send-email-yamada.masahiro@socionext.com>

<common.h> pulls in a lot of headers.  Including it from every .c
file is a bad idea.  We need to remove contents until it contains
nothing.

Move printf() and friends to <stdio.h>.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2:
  - newly added

 include/common.h | 41 +--------------------------------------
 include/stdio.h  | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 40 deletions(-)
 create mode 100644 include/stdio.h

diff --git a/include/common.h b/include/common.h
index aaed13167123..5e841947c17f 100644
--- a/include/common.h
+++ b/include/common.h
@@ -29,6 +29,7 @@ typedef volatile unsigned char	vu_char;
 #include <linux/stringify.h>
 #include <asm/ptrace.h>
 #include <stdarg.h>
+#include <stdio.h>
 #include <linux/kernel.h>
 
 #include <part.h>
@@ -699,46 +700,6 @@ unsigned int rand_r(unsigned int *seedp);
 /* serial stuff */
 int	serial_printf (const char *fmt, ...)
 		__attribute__ ((format (__printf__, 1, 2)));
-/* stdin */
-int	getc(void);
-int	tstc(void);
-
-/* stdout */
-#if !defined(CONFIG_SPL_BUILD) || \
-	(defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_SERIAL_SUPPORT)) || \
-	(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) && \
-		defined(CONFIG_SPL_SERIAL_SUPPORT))
-void	putc(const char c);
-void	puts(const char *s);
-int	printf(const char *fmt, ...)
-		__attribute__ ((format (__printf__, 1, 2)));
-int	vprintf(const char *fmt, va_list args);
-#else
-#define	putc(...) do { } while (0)
-#define puts(...) do { } while (0)
-#define printf(...) do { } while (0)
-#define vprintf(...) do { } while (0)
-#endif
-
-/* stderr */
-#define eputc(c)		fputc(stderr, c)
-#define eputs(s)		fputs(stderr, s)
-#define eprintf(fmt,args...)	fprintf(stderr,fmt ,##args)
-
-/*
- * FILE based functions (can only be used AFTER relocation!)
- */
-#define stdin		0
-#define stdout		1
-#define stderr		2
-#define MAX_FILES	3
-
-int	fprintf(int file, const char *fmt, ...)
-		__attribute__ ((format (__printf__, 2, 3)));
-void	fputs(int file, const char *s);
-void	fputc(int file, const char c);
-int	ftstc(int file);
-int	fgetc(int file);
 
 /* lib/gzip.c */
 int gzip(void *dst, unsigned long *lenp,
diff --git a/include/stdio.h b/include/stdio.h
new file mode 100644
index 000000000000..aedf3744525e
--- /dev/null
+++ b/include/stdio.h
@@ -0,0 +1,59 @@
+#ifndef __STDIO_H
+#define __STDIO_H
+
+#include <stdarg.h>
+#include <linux/compiler.h>
+
+/* stdin */
+int getc(void);
+int tstc(void);
+
+/* stdout */
+#if !defined(CONFIG_SPL_BUILD) || \
+	(defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_SERIAL_SUPPORT)) || \
+	(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) && \
+		defined(CONFIG_SPL_SERIAL_SUPPORT))
+void putc(const char c);
+void puts(const char *s);
+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 int __printf(1, 2) printf(const char *fmt, ...)
+{
+	return 0;
+}
+
+static inline int vprintf(const char *fmt, va_list args)
+{
+	return 0;
+}
+#endif
+
+/*
+ * 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 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);
+int ftstc(int file);
+int fgetc(int file);
+
+#endif /* __STDIO_H */
-- 
2.7.4

  reply	other threads:[~2017-09-16  5:10 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-16  5:10 [U-Boot] [PATCH v2 0/8] Sync and consolidate Linux-derived printk, BUILD_BUG, BUG, WARN, etc Masahiro Yamada
2017-09-16  5:10 ` Masahiro Yamada [this message]
2017-10-05 21:51   ` [U-Boot] [U-Boot, v2, 1/8] stdio.h: move printf() stuff from <common.h> to <stdio.h> Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 2/8] printk: collect printk stuff into <linux/printk.h> with loglevel support Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 3/8] treewide: replace with error() with pr_err() Masahiro Yamada
2017-09-25  2:15   ` Simon Glass
2017-09-28  6:11   ` Masahiro Yamada
2017-09-28 12:43     ` Tom Rini
2017-09-28 12:56       ` Masahiro Yamada
2017-09-28 13:11         ` Tom Rini
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 4/8] common.h: remove error() Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot,v2,4/8] " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 5/8] vsprintf.h: include <linux/types.h> Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot,v2,5/8] " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 6/8] bug.h: sync BUILD_BUG stuff with Linux 4.13 Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 7/8] bug.h: move runtime BUG/WARN macros into <linux/bug.h> Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 8/8] dm: define dev_*() log functions in DM header Masahiro Yamada
2017-09-25  2:15   ` Simon Glass
2017-09-26  3:00     ` Masahiro Yamada
2017-10-04  5:15 ` [U-Boot] [PATCH v2 0/8] Sync and consolidate Linux-derived printk, BUILD_BUG, BUG, WARN, etc Masahiro Yamada
2017-10-05  3:06   ` Tom Rini
2017-10-05  3:20     ` Masahiro Yamada
2017-10-05 11:58       ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1505538646-19191-2-git-send-email-yamada.masahiro@socionext.com \
    --to=yamada.masahiro@socionext.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.