mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
existing code does not work due to the characteristics of stage1. This has been broken since r729. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://coreboot.org/repository/coreboot-v3@786 f3766cd6-281f-0410-b1cd-43a5c92072e9
85 lines
2.9 KiB
C
85 lines
2.9 KiB
C
/*
|
|
* 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.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef CONSOLE_H
|
|
#define CONSOLE_H
|
|
|
|
#include <types.h>
|
|
#include <shared.h> /* We share symbols from stage 0 */
|
|
#include <post_code.h>
|
|
|
|
#define BIOS_ALWAYS 0 /* log no matter what; not necessarily an error */
|
|
#define BIOS_EMERG 0 /* system is unusable */
|
|
#define BIOS_ALERT 1 /* action must be taken immediately */
|
|
#define BIOS_CRIT 2 /* critical conditions */
|
|
#define BIOS_ERR 3 /* error conditions */
|
|
#define BIOS_WARNING 4 /* warning conditions */
|
|
#define BIOS_NOTICE 5 /* normal but significant condition */
|
|
#define BIOS_INFO 6 /* informational */
|
|
#define BIOS_DEBUG 7 /* debug-level messages */
|
|
#define BIOS_SPEW 8 /* Way too many details */
|
|
|
|
void console_init(void);
|
|
void console_tx_byte(unsigned char byte, void *arg);
|
|
void console_tx_flush(void);
|
|
unsigned char console_rx_byte(void);
|
|
int console_tst_byte(void);
|
|
void console_loglevel_init(void);
|
|
#ifdef CONFIG_CONSOLE_BUFFER
|
|
void printk_buffer_init(void);
|
|
void printk_buffer_move(void *newaddr, int newsize);
|
|
#endif
|
|
|
|
struct console_driver {
|
|
void (*init)(void);
|
|
void (*tx_byte)(unsigned char byte, void *arg);
|
|
void (*tx_flush)(void);
|
|
unsigned char (*rx_byte)(void);
|
|
int (*tst_byte)(void);
|
|
};
|
|
|
|
#ifdef CONFIG_CONSOLE_BUFFER
|
|
struct printk_buffer {
|
|
int len;
|
|
int readoffset;
|
|
int writeoffset;
|
|
char buffer[];
|
|
};
|
|
#endif
|
|
|
|
/*
|
|
* struct global_vars is managed entirely from C code. Keep in mind that there
|
|
* is NO buffer at the end of the struct, so having zero-sized arrays at the
|
|
* end or similar stuff for which the compiler can't determine the final size
|
|
* will corrupt memory. If you don't try to be clever, everything will be fine.
|
|
*/
|
|
struct global_vars {
|
|
#ifdef CONFIG_CONSOLE_BUFFER
|
|
struct printk_buffer *printk_buffer;
|
|
#endif
|
|
unsigned int loglevel;
|
|
};
|
|
|
|
int printk(int msg_level, const char *fmt, ...) __attribute__((format (printf, 2, 3)));
|
|
EXPORT_SYMBOL(printk);
|
|
void banner(int msg_level, const char *msg);
|
|
EXPORT_SYMBOL(banner);
|
|
void dump_mem_range(int msg_level, unsigned char *buf, int size);
|
|
EXPORT_SYMBOL(dump_mem_range);
|
|
void die(const char *msg);
|
|
EXPORT_SYMBOL(die);
|
|
|
|
#endif /* CONSOLE_H */
|