From 27b207fd0a0941b03f27e2a82c0468b1a090c745 Mon Sep 17 00:00:00 2001 From: wdenk Date: Thu, 24 Jul 2003 23:38:38 +0000 Subject: * Implement new mechanism to export U-Boot's functions to standalone applications: instead of using (PPC-specific) system calls we now use a jump table; please see doc/README.standalone for details * Patch by Dave Westwood, 24 Jul 2003: added support for Unity OS (a proprietary OS) --- common/console.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'common/console.c') diff --git a/common/console.c b/common/console.c index 8c94aa765..148c59981 100644 --- a/common/console.c +++ b/common/console.c @@ -25,9 +25,7 @@ #include #include #include -#include - -void **syscall_tbl; +#include #ifdef CONFIG_AMIGAONEG3SE int console_changed = 0; @@ -52,6 +50,7 @@ int overwrite_console (void) static int console_setfile (int file, device_t * dev) { + DECLARE_GLOBAL_DATA_PTR; int error = 0; if (dev == NULL) @@ -78,13 +77,13 @@ static int console_setfile (int file, device_t * dev) */ switch (file) { case stdin: - syscall_tbl[SYSCALL_GETC] = dev->getc; - syscall_tbl[SYSCALL_TSTC] = dev->tstc; + gd->jt[XF_getc] = dev->getc; + gd->jt[XF_tstc] = dev->tstc; break; case stdout: - syscall_tbl[SYSCALL_PUTC] = dev->putc; - syscall_tbl[SYSCALL_PUTS] = dev->puts; - syscall_tbl[SYSCALL_PRINTF] = printf; + gd->jt[XF_putc] = dev->putc; + gd->jt[XF_puts] = dev->puts; + gd->jt[XF_printf] = printf; break; } break; @@ -394,15 +393,16 @@ device_t *search_device (int flags, char *name) /* Called after the relocation - use desired console functions */ int console_init_r (void) { + DECLARE_GLOBAL_DATA_PTR; char *stdinname, *stdoutname, *stderrname; device_t *inputdev = NULL, *outputdev = NULL, *errdev = NULL; /* set default handlers at first */ - syscall_tbl[SYSCALL_GETC] = serial_getc; - syscall_tbl[SYSCALL_TSTC] = serial_tstc; - syscall_tbl[SYSCALL_PUTC] = serial_putc; - syscall_tbl[SYSCALL_PUTS] = serial_puts; - syscall_tbl[SYSCALL_PRINTF] = serial_printf; + gd->jt[XF_getc] = serial_getc; + gd->jt[XF_tstc] = serial_tstc; + gd->jt[XF_putc] = serial_putc; + gd->jt[XF_puts] = serial_puts; + gd->jt[XF_printf] = serial_printf; /* stdin stdout and stderr are in environment */ /* scan for it */ -- cgit v1.2.3