56 lines
		
	
	
	
		
			928 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
	
		
			928 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Wrap-around code for a console using the
							 | 
						||
| 
								 | 
							
								 * DECstation PROM io-routines.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 1998 Harald Koerfgen
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <linux/tty.h>
							 | 
						||
| 
								 | 
							
								#include <linux/ptrace.h>
							 | 
						||
| 
								 | 
							
								#include <linux/init.h>
							 | 
						||
| 
								 | 
							
								#include <linux/console.h>
							 | 
						||
| 
								 | 
							
								#include <linux/fs.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <asm/dec/prom.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static void prom_console_write(struct console *co, const char *s,
							 | 
						||
| 
								 | 
							
											       unsigned count)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									unsigned i;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/*
							 | 
						||
| 
								 | 
							
									 *    Now, do each character
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									for (i = 0; i < count; i++) {
							 | 
						||
| 
								 | 
							
										if (*s == 10)
							 | 
						||
| 
								 | 
							
											prom_printf("%c", 13);
							 | 
						||
| 
								 | 
							
										prom_printf("%c", *s++);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static int __init prom_console_setup(struct console *co, char *options)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									return 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static struct console sercons =
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									.name	= "ttyS",
							 | 
						||
| 
								 | 
							
									.write	= prom_console_write,
							 | 
						||
| 
								 | 
							
									.setup	= prom_console_setup,
							 | 
						||
| 
								 | 
							
									.flags	= CON_PRINTBUFFER,
							 | 
						||
| 
								 | 
							
									.index	= -1,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 *    Register console.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static int __init prom_console_init(void)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									register_console(&sercons);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								console_initcall(prom_console_init);
							 |