console: consolidate common console code
The different console implementations share a good amount of code, share this in console_common.c. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
2ccd4510bd
commit
c429c68416
|
@ -23,7 +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-y += console_common.o
|
||||
obj-$(CONFIG_DIGEST) += digest.o
|
||||
obj-$(CONFIG_ENVIRONMENT_VARIABLES) += env.o
|
||||
obj-$(CONFIG_UIMAGE) += image.o
|
||||
|
|
|
@ -305,24 +305,6 @@ void console_putc(unsigned int ch, char c)
|
|||
}
|
||||
EXPORT_SYMBOL(console_putc);
|
||||
|
||||
int fputc(int fd, char c)
|
||||
{
|
||||
if(list_empty(&console_list)) {
|
||||
if(!fd)
|
||||
console_putc(0, c);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (fd == 1)
|
||||
putchar(c);
|
||||
else if (fd == 2)
|
||||
eputc(c);
|
||||
else
|
||||
return write(fd, &c, 1);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputc);
|
||||
|
||||
int console_puts(unsigned int ch, const char *str)
|
||||
{
|
||||
const char *s = str;
|
||||
|
@ -341,17 +323,6 @@ int console_puts(unsigned int ch, const char *str)
|
|||
}
|
||||
EXPORT_SYMBOL(console_puts);
|
||||
|
||||
int fputs(int fd, const char *s)
|
||||
{
|
||||
if (fd == 1)
|
||||
return puts(s);
|
||||
else if (fd == 2)
|
||||
return eputs(s);
|
||||
else
|
||||
return write(fd, s, strlen(s));
|
||||
}
|
||||
EXPORT_SYMBOL(fputs);
|
||||
|
||||
void console_flush(void)
|
||||
{
|
||||
struct console_device *cdev;
|
||||
|
@ -363,62 +334,6 @@ void console_flush(void)
|
|||
}
|
||||
EXPORT_SYMBOL(console_flush);
|
||||
|
||||
int fprintf(int file, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
va_start (args, fmt);
|
||||
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
vsprintf (printbuffer, fmt, args);
|
||||
va_end (args);
|
||||
|
||||
/* Print the string */
|
||||
return fputs(file, printbuffer);
|
||||
}
|
||||
EXPORT_SYMBOL(fprintf);
|
||||
|
||||
int printf (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 */
|
||||
puts (printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(printf);
|
||||
|
||||
int vprintf (const char *fmt, va_list args)
|
||||
{
|
||||
uint i;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf (printbuffer, fmt, args);
|
||||
|
||||
/* Print the string */
|
||||
puts (printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(vprintf);
|
||||
|
||||
#ifndef ARCH_HAS_CTRLC
|
||||
/* test if ctrl-c was pressed */
|
||||
int ctrlc (void)
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* based on code:
|
||||
*
|
||||
* (C) Copyright 2000 Paolo Scaffardi, AIRVENT SAM s.p.a -
|
||||
* RIMINI(ITALY), arsenio@tin.it
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <fs.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifndef CONFIG_CONSOLE_NONE
|
||||
|
||||
int printf(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 */
|
||||
puts(printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(printf);
|
||||
|
||||
int vprintf(const char *fmt, va_list args)
|
||||
{
|
||||
uint i;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
/*
|
||||
* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf(printbuffer, fmt, args);
|
||||
|
||||
/* Print the string */
|
||||
puts(printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(vprintf);
|
||||
|
||||
#endif /* !CONFIG_CONSOLE_NONE */
|
||||
|
||||
int fprintf(int file, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
va_start(args, fmt);
|
||||
|
||||
/*
|
||||
* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
vsprintf(printbuffer, fmt, args);
|
||||
va_end(args);
|
||||
|
||||
/* Print the string */
|
||||
return fputs(file, printbuffer);
|
||||
}
|
||||
EXPORT_SYMBOL(fprintf);
|
||||
|
||||
int fputs(int fd, const char *s)
|
||||
{
|
||||
if (fd == 1)
|
||||
return puts(s);
|
||||
else if (fd == 2)
|
||||
return eputs(s);
|
||||
else
|
||||
return write(fd, s, strlen(s));
|
||||
}
|
||||
EXPORT_SYMBOL(fputs);
|
||||
|
||||
int fputc(int fd, char c)
|
||||
{
|
||||
if (fd == 1)
|
||||
putchar(c);
|
||||
else if (fd == 2)
|
||||
eputc(c);
|
||||
else
|
||||
return write(fd, &c, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputc);
|
|
@ -1,42 +0,0 @@
|
|||
#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);
|
|
@ -8,65 +8,6 @@ LIST_HEAD(console_list);
|
|||
EXPORT_SYMBOL(console_list);
|
||||
static struct console_device *console;
|
||||
|
||||
int printf (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 */
|
||||
puts(printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(printf);
|
||||
|
||||
int vprintf (const char *fmt, va_list args)
|
||||
{
|
||||
uint i;
|
||||
char printbuffer[CFG_PBSIZE];
|
||||
|
||||
/* For this to work, printbuffer must be larger than
|
||||
* anything we ever want to print.
|
||||
*/
|
||||
i = vsprintf (printbuffer, fmt, args);
|
||||
|
||||
/* Print the string */
|
||||
puts (printbuffer);
|
||||
|
||||
return i;
|
||||
}
|
||||
EXPORT_SYMBOL(vprintf);
|
||||
|
||||
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);
|
||||
|
||||
int console_puts(unsigned int ch, const char *str)
|
||||
{
|
||||
const char *s = str;
|
||||
|
@ -97,30 +38,6 @@ void console_putc(unsigned int ch, char c)
|
|||
}
|
||||
EXPORT_SYMBOL(console_putc);
|
||||
|
||||
int fputc(int fd, char c)
|
||||
{
|
||||
if (fd == 1)
|
||||
putchar(c);
|
||||
else if (fd == 2)
|
||||
eputc(c);
|
||||
else
|
||||
return write(fd, &c, 1);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputc);
|
||||
|
||||
int fputs(int fd, const char *s)
|
||||
{
|
||||
if (fd == 1)
|
||||
puts(s);
|
||||
else if (fd == 2)
|
||||
eputs(s);
|
||||
else
|
||||
return write(fd, s, strlen(s));
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fputs);
|
||||
|
||||
int tstc(void)
|
||||
{
|
||||
if (!console)
|
||||
|
|
Loading…
Reference in New Issue