Path: blob/master/arch/ia64/hp/sim/hpsim_console.c
15126 views
/*1* Platform dependent support for HP simulator.2*3* Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co4* David Mosberger-Tang <[email protected]>5* Copyright (C) 1999 Vijay Chander <[email protected]>6*/78#include <linux/init.h>9#include <linux/kernel.h>10#include <linux/param.h>11#include <linux/string.h>12#include <linux/types.h>13#include <linux/tty.h>14#include <linux/kdev_t.h>15#include <linux/console.h>1617#include <asm/delay.h>18#include <asm/irq.h>19#include <asm/pal.h>20#include <asm/machvec.h>21#include <asm/pgtable.h>22#include <asm/sal.h>23#include <asm/hpsim.h>2425#include "hpsim_ssc.h"2627static int simcons_init (struct console *, char *);28static void simcons_write (struct console *, const char *, unsigned);29static struct tty_driver *simcons_console_device (struct console *, int *);3031static struct console hpsim_cons = {32.name = "simcons",33.write = simcons_write,34.device = simcons_console_device,35.setup = simcons_init,36.flags = CON_PRINTBUFFER,37.index = -1,38};3940static int41simcons_init (struct console *cons, char *options)42{43return 0;44}4546static void47simcons_write (struct console *cons, const char *buf, unsigned count)48{49unsigned long ch;5051while (count-- > 0) {52ch = *buf++;53ia64_ssc(ch, 0, 0, 0, SSC_PUTCHAR);54if (ch == '\n')55ia64_ssc('\r', 0, 0, 0, SSC_PUTCHAR);56}57}5859static struct tty_driver *simcons_console_device (struct console *c, int *index)60{61*index = c->index;62return hp_simserial_driver;63}6465int simcons_register(void)66{67if (!ia64_platform_is("hpsim"))68return 1;6970if (hpsim_cons.flags & CON_ENABLED)71return 1;7273register_console(&hpsim_cons);74return 0;75}767778