introduce console none support
this will allow to have no console support Use full for bootstrap as we can save 6.5 KiB (barebox.bin) and 3.8 KiB (zbarebox.bin lzo) on at91sam9263 as example vs console simple As on bootstrap we have often very limited size. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
2bdc28c475
commit
b1da925c8a
|
@ -260,6 +260,7 @@ endmenu
|
|||
menu "memory"
|
||||
|
||||
config CMD_LOADB
|
||||
depends on !CONSOLE_NONE
|
||||
select CRC16
|
||||
tristate
|
||||
prompt "loadb"
|
||||
|
@ -267,10 +268,12 @@ config CMD_LOADB
|
|||
config CMD_LOADY
|
||||
select CRC16
|
||||
select XYMODEM
|
||||
depends on !CONSOLE_NONE
|
||||
tristate
|
||||
prompt "loady"
|
||||
|
||||
config CMD_LOADS
|
||||
depends on !CONSOLE_NONE
|
||||
tristate
|
||||
prompt "loads"
|
||||
|
||||
|
|
|
@ -484,6 +484,10 @@ config CONSOLE_SIMPLE
|
|||
bool
|
||||
prompt "simple"
|
||||
|
||||
config CONSOLE_NONE
|
||||
bool
|
||||
prompt "none"
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
|
|
|
@ -23,6 +23,7 @@ obj-$(CONFIG_MEMINFO) += meminfo.o
|
|||
obj-$(CONFIG_COMMAND_SUPPORT) += command.o
|
||||
obj-$(CONFIG_CONSOLE_FULL) += console.o
|
||||
obj-$(CONFIG_CONSOLE_SIMPLE) += console_simple.o
|
||||
obj-$(CONFIG_CONSOLE_NONE) += console_none.o
|
||||
obj-$(CONFIG_DIGEST) += digest.o
|
||||
obj-$(CONFIG_ENVIRONMENT_VARIABLES) += env.o
|
||||
obj-$(CONFIG_UIMAGE) += image.o
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
#include <config.h>
|
||||
#include <common.h>
|
||||
#include <fs.h>
|
||||
#include <errno.h>
|
||||
#include <debug_ll.h>
|
||||
|
||||
int fputc(int fd, char c)
|
||||
{
|
||||
if (fd != 1 && fd != 2)
|
||||
return write(fd, &c, 1);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputc);
|
||||
|
||||
int fputs(int fd, const char *s)
|
||||
{
|
||||
if (fd != 1 && fd != 2)
|
||||
return write(fd, s, strlen(s));
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputs);
|
||||
|
||||
int fprintf(int file, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
uint i;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
va_start (args, fmt);
|
||||
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf (printbuffer, fmt, args);
|
||||
va_end (args);
|
||||
|
||||
/* Print the string */
|
||||
fputs(file, printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(fprintf);
|
|
@ -1,4 +1,5 @@
|
|||
menu "serial drivers"
|
||||
depends on !CONSOLE_NONE
|
||||
|
||||
config DRIVER_SERIAL_ARM_DCC
|
||||
depends on ARM
|
||||
|
|
|
@ -44,7 +44,7 @@ config USB_GADGET_DFU
|
|||
|
||||
config USB_GADGET_SERIAL
|
||||
bool
|
||||
depends on EXPERIMENTAL
|
||||
depends on EXPERIMENTAL && !CONSOLE_NONE
|
||||
prompt "Serial Gadget"
|
||||
|
||||
endif
|
||||
|
|
|
@ -11,6 +11,15 @@
|
|||
/* serial stuff */
|
||||
void serial_printf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
|
||||
int sprintf(char *buf, const char *fmt, ...) __attribute__ ((format(__printf__, 2, 3)));
|
||||
int snprintf(char *buf, size_t size, const char *fmt, ...) __attribute__ ((format(__printf__, 3, 4)));
|
||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||
char *asprintf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
char *vasprintf(const char *fmt, va_list ap);
|
||||
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
|
||||
#ifndef CONFIG_CONSOLE_NONE
|
||||
/* stdin */
|
||||
int tstc(void);
|
||||
|
||||
|
@ -20,6 +29,51 @@ int getc(void);
|
|||
int console_puts(unsigned int ch, const char *s);
|
||||
void console_flush(void);
|
||||
|
||||
|
||||
int printf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
int vprintf(const char *fmt, va_list args);
|
||||
#else
|
||||
static inline int tstc(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int console_puts(unsigned int ch, const char *str)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int getc(void)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline void console_putc(unsigned int ch, char c) {}
|
||||
|
||||
static inline void console_flush(void) {}
|
||||
|
||||
static int printf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
static inline int printf(const char *fmt, ...)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static inline int vprintf(const char *fmt, va_list args)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef ARCH_HAS_CTRLC
|
||||
/* test if ctrl-c was pressed */
|
||||
static inline int ctrlc (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* ARCH_HAS_CTRC */
|
||||
|
||||
#endif
|
||||
|
||||
static inline int puts(const char *s)
|
||||
{
|
||||
return console_puts(CONSOLE_STDOUT, s);
|
||||
|
@ -30,16 +84,6 @@ static inline void putchar(char c)
|
|||
console_putc(CONSOLE_STDOUT, c);
|
||||
}
|
||||
|
||||
int printf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
int vprintf(const char *fmt, va_list args);
|
||||
int sprintf(char *buf, const char *fmt, ...) __attribute__ ((format(__printf__, 2, 3)));
|
||||
int snprintf(char *buf, size_t size, const char *fmt, ...) __attribute__ ((format(__printf__, 3, 4)));
|
||||
int vsprintf(char *buf, const char *fmt, va_list args);
|
||||
char *asprintf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
|
||||
char *vasprintf(const char *fmt, va_list ap);
|
||||
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
|
||||
|
||||
/* stderr */
|
||||
#define eputc(c) console_putc(CONSOLE_STDERR, c)
|
||||
#define eputs(s) console_puts(CONSOLE_STDERR, s)
|
||||
|
|
|
@ -17,6 +17,7 @@ config NET_PING
|
|||
|
||||
config NET_NETCONSOLE
|
||||
bool
|
||||
depends on !CONSOLE_NONE
|
||||
prompt "network console support"
|
||||
help
|
||||
This option adds support for a simple udp based network console.
|
||||
|
|
Loading…
Reference in New Issue