mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 14:30:50 +00:00 
			
		
		
		
	 7b3166dbc3
			
		
	
	
		7b3166dbc3
		
	
	
	
	
		
			
			After my last patch we have a new header file for HP simulator use. Here's code to use it for stuff that used to have `extern' statements inline in the code. Functionality should not change with this patch. Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Platform dependent support for HP simulator.
 | |
|  *
 | |
|  * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co
 | |
|  *	David Mosberger-Tang <davidm@hpl.hp.com>
 | |
|  * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
 | |
|  */
 | |
| 
 | |
| #include <linux/init.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/param.h>
 | |
| #include <linux/string.h>
 | |
| #include <linux/types.h>
 | |
| #include <linux/tty.h>
 | |
| #include <linux/kdev_t.h>
 | |
| #include <linux/console.h>
 | |
| 
 | |
| #include <asm/delay.h>
 | |
| #include <asm/irq.h>
 | |
| #include <asm/pal.h>
 | |
| #include <asm/machvec.h>
 | |
| #include <asm/pgtable.h>
 | |
| #include <asm/sal.h>
 | |
| #include <asm/hpsim.h>
 | |
| 
 | |
| #include "hpsim_ssc.h"
 | |
| 
 | |
| static int simcons_init (struct console *, char *);
 | |
| static void simcons_write (struct console *, const char *, unsigned);
 | |
| static struct tty_driver *simcons_console_device (struct console *, int *);
 | |
| 
 | |
| static struct console hpsim_cons = {
 | |
| 	.name =		"simcons",
 | |
| 	.write =	simcons_write,
 | |
| 	.device =	simcons_console_device,
 | |
| 	.setup =	simcons_init,
 | |
| 	.flags =	CON_PRINTBUFFER,
 | |
| 	.index =	-1,
 | |
| };
 | |
| 
 | |
| static int
 | |
| simcons_init (struct console *cons, char *options)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static void
 | |
| simcons_write (struct console *cons, const char *buf, unsigned count)
 | |
| {
 | |
| 	unsigned long ch;
 | |
| 
 | |
| 	while (count-- > 0) {
 | |
| 		ch = *buf++;
 | |
| 		ia64_ssc(ch, 0, 0, 0, SSC_PUTCHAR);
 | |
| 		if (ch == '\n')
 | |
| 		  ia64_ssc('\r', 0, 0, 0, SSC_PUTCHAR);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| static struct tty_driver *simcons_console_device (struct console *c, int *index)
 | |
| {
 | |
| 	*index = c->index;
 | |
| 	return hp_simserial_driver;
 | |
| }
 | |
| 
 | |
| int simcons_register(void)
 | |
| {
 | |
| 	if (!ia64_platform_is("hpsim"))
 | |
| 		return 1;
 | |
| 
 | |
| 	if (hpsim_cons.flags & CON_ENABLED)
 | |
| 		return 1;
 | |
| 
 | |
| 	register_console(&hpsim_cons);
 | |
| 	return 0;
 | |
| }
 |