1 /* 2 * OF console routines 3 * 4 * Copyright (C) Paul Mackerras 1997. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 9 * 2 of the License, or (at your option) any later version. 10 */ 11 #include <stddef.h> 12 #include "types.h" 13 #include "elf.h" 14 #include "string.h" 15 #include "stdio.h" 16 #include "page.h" 17 #include "ops.h" 18 19 #include "of.h" 20 21 static unsigned int of_stdout_handle; 22 23 static int of_console_open(void) 24 { 25 void *devp; 26 27 if (((devp = of_finddevice("/chosen")) != NULL) 28 && (of_getprop(devp, "stdout", &of_stdout_handle, 29 sizeof(of_stdout_handle)) 30 == sizeof(of_stdout_handle))) { 31 of_stdout_handle = be32_to_cpu(of_stdout_handle); 32 return 0; 33 } 34 35 return -1; 36 } 37 38 static void of_console_write(const char *buf, int len) 39 { 40 of_call_prom("write", 3, 1, of_stdout_handle, buf, len); 41 } 42 43 void of_console_init(void) 44 { 45 console_ops.open = of_console_open; 46 console_ops.write = of_console_write; 47 } 48