summaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/udbg.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2005-11-11 16:42:12 +1100
committerPaul Mackerras <paulus@samba.org>2005-11-11 22:23:34 +1100
commit35cd8785de39c90a52287d0f041cff8a792eaa74 (patch)
treee45b94be971992d21f06086ef2ae443b90fd621b /arch/ppc64/kernel/udbg.c
parenta7df61a0e2b6300d8b8349c1e5e87a4336c0ab38 (diff)
downloadkernel-crypto-35cd8785de39c90a52287d0f041cff8a792eaa74.tar.gz
kernel-crypto-35cd8785de39c90a52287d0f041cff8a792eaa74.tar.xz
kernel-crypto-35cd8785de39c90a52287d0f041cff8a792eaa74.zip
[PATCH] powerpc: Move udbg code to arch/powerpc
Since the udbg code in ppc64 has no ppc32 equivalent, move it straight over into arch/powerpc (and include/asm-powerpc for udbg.h). In time, we probably want to meld the various bits and pieces of 32-bit early debugging code into udbg, but for now only include it on CONFIG_PPC64=y builds. The only change during the move is to standardise the protecting #ifdef/#define in udbg.h, and move its banner comment above the initial #ifdef (which seems to be normal practice). Built and booted on POWER5 LPAR (ARCH=powerpc and ARCH=ppc64). Built for 32bit multiplatform (ARCH=powerpc). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64/kernel/udbg.c')
-rw-r--r--arch/ppc64/kernel/udbg.c125
1 files changed, 0 insertions, 125 deletions
diff --git a/arch/ppc64/kernel/udbg.c b/arch/ppc64/kernel/udbg.c
deleted file mode 100644
index 0d878e72fc4..00000000000
--- a/arch/ppc64/kernel/udbg.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * polling mode stateless debugging stuff, originally for NS16550 Serial Ports
- *
- * c 2001 PPC 64 Team, IBM Corp
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-#include <stdarg.h>
-#include <linux/config.h>
-#include <linux/types.h>
-#include <linux/sched.h>
-#include <linux/console.h>
-#include <asm/processor.h>
-
-void (*udbg_putc)(unsigned char c);
-unsigned char (*udbg_getc)(void);
-int (*udbg_getc_poll)(void);
-
-/* udbg library, used by xmon et al */
-void udbg_puts(const char *s)
-{
- if (udbg_putc) {
- char c;
-
- if (s && *s != '\0') {
- while ((c = *s++) != '\0')
- udbg_putc(c);
- }
- }
-#if 0
- else {
- printk("%s", s);
- }
-#endif
-}
-
-int udbg_write(const char *s, int n)
-{
- int remain = n;
- char c;
-
- if (!udbg_putc)
- return 0;
-
- if (s && *s != '\0') {
- while (((c = *s++) != '\0') && (remain-- > 0)) {
- udbg_putc(c);
- }
- }
-
- return n - remain;
-}
-
-int udbg_read(char *buf, int buflen)
-{
- char c, *p = buf;
- int i;
-
- if (!udbg_getc)
- return 0;
-
- for (i = 0; i < buflen; ++i) {
- do {
- c = udbg_getc();
- } while (c == 0x11 || c == 0x13);
- if (c == 0)
- break;
- *p++ = c;
- }
-
- return i;
-}
-
-#define UDBG_BUFSIZE 256
-void udbg_printf(const char *fmt, ...)
-{
- unsigned char buf[UDBG_BUFSIZE];
- va_list args;
-
- va_start(args, fmt);
- vsnprintf(buf, UDBG_BUFSIZE, fmt, args);
- udbg_puts(buf);
- va_end(args);
-}
-
-/*
- * Early boot console based on udbg
- */
-static void udbg_console_write(struct console *con, const char *s,
- unsigned int n)
-{
- udbg_write(s, n);
-}
-
-static struct console udbg_console = {
- .name = "udbg",
- .write = udbg_console_write,
- .flags = CON_PRINTBUFFER,
- .index = -1,
-};
-
-static int early_console_initialized;
-
-void __init disable_early_printk(void)
-{
- if (!early_console_initialized)
- return;
- unregister_console(&udbg_console);
- early_console_initialized = 0;
-}
-
-/* called by setup_system */
-void register_early_udbg_console(void)
-{
- early_console_initialized = 1;
- register_console(&udbg_console);
-}
-
-#if 0 /* if you want to use this as a regular output console */
-console_initcall(register_udbg_console);
-#endif