#include <linux/types.h>
#include <linux/kdev_t.h>
#include <linux/console.h>
#include <linux/vt_kern.h>
#include <linux/screen_info.h>
#include <linux/init.h>
#include <linux/module.h>
#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_VGA_CONSOLE)
#include <asm/vga.h>
#define DUMMY_COLUMNS …
#define DUMMY_ROWS …
#else
#define DUMMY_COLUMNS …
#define DUMMY_ROWS …
#endif
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
static RAW_NOTIFIER_HEAD(dummycon_output_nh);
static bool dummycon_putc_called;
void dummycon_register_output_notifier(struct notifier_block *nb)
{ … }
void dummycon_unregister_output_notifier(struct notifier_block *nb)
{ … }
static void dummycon_putc(struct vc_data *vc, u16 c, unsigned int y,
unsigned int x)
{ … }
static void dummycon_putcs(struct vc_data *vc, const u16 *s, unsigned int count,
unsigned int ypos, unsigned int xpos)
{ … }
static bool dummycon_blank(struct vc_data *vc, enum vesa_blank_mode blank,
bool mode_switch)
{ … }
#else
static void dummycon_putc(struct vc_data *vc, u16 c, unsigned int y,
unsigned int x) { }
static void dummycon_putcs(struct vc_data *vc, const u16 *s, unsigned int count,
unsigned int ypos, unsigned int xpos) { }
static bool dummycon_blank(struct vc_data *vc, enum vesa_blank_mode blank,
bool mode_switch)
{
return false;
}
#endif
static const char *dummycon_startup(void)
{ … }
static void dummycon_init(struct vc_data *vc, bool init)
{ … }
static void dummycon_deinit(struct vc_data *vc) { … }
static void dummycon_clear(struct vc_data *vc, unsigned int sy, unsigned int sx,
unsigned int width) { … }
static void dummycon_cursor(struct vc_data *vc, bool enable) { … }
static bool dummycon_scroll(struct vc_data *vc, unsigned int top,
unsigned int bottom, enum con_scroll dir,
unsigned int lines)
{ … }
static bool dummycon_switch(struct vc_data *vc)
{ … }
const struct consw dummy_con = …;
EXPORT_SYMBOL_GPL(…);