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 21static unsigned int of_stdout_handle; 22 23static 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 38static void of_console_write(const char *buf, int len) 39{ 40 of_call_prom("write", 3, 1, of_stdout_handle, buf, len); 41} 42 43void of_console_init(void) 44{ 45 console_ops.open = of_console_open; 46 console_ops.write = of_console_write; 47} 48